forked from bitcoinafterlife/bal-server
perf: reduce binary sizes from 15M/11M to 3.8M/5.5M
- Add [profile.release]: opt-level=z, lto=true, strip=true, codegen-units=1, panic=abort - Replace vendored openssl (~5MB) with ed25519-dalek (pure Rust, ~100KB) - Feature-gate deps: server (actix, chrono) vs pusher (zmq, reqwest, ed25519-dalek) - Remove unused confy dependency - bal-pusher: 15M -> 3.8M (-75%) - bal-server: 11M -> 5.5M (-50%)
This commit is contained in:
@@ -6,6 +6,7 @@ use bitcoincore_rpc::{Auth, Client, Error, RpcApi, bitcoin};
|
||||
use bitcoincore_rpc_json::GetBlockchainInfoResult;
|
||||
|
||||
use byteorder::{LittleEndian, ReadBytesExt};
|
||||
use ed25519_dalek::{Signer as _, SigningKey, pkcs8::DecodePrivateKey};
|
||||
use log::{debug, error, info, trace, warn};
|
||||
use serde::Deserialize;
|
||||
use serde::Serialize;
|
||||
@@ -22,10 +23,7 @@ use zmq::{Context, DEALER, DONTWAIT, Socket};
|
||||
use bal_server::db::open_db;
|
||||
use bal_server::validation::is_valid_welist_url;
|
||||
use base64::{Engine as _, engine::general_purpose};
|
||||
use openssl::pkey::PKey;
|
||||
use openssl::sign::Signer;
|
||||
use reqwest::Client as rClient;
|
||||
use std::fs;
|
||||
use std::net::SocketAddr;
|
||||
use std::time::Instant;
|
||||
use url::Url;
|
||||
@@ -558,14 +556,11 @@ async fn send_stats_report(
|
||||
Ok(())
|
||||
}
|
||||
fn sign_message(private_key_path: &str, message: &str) -> String {
|
||||
let key_data = fs::read(private_key_path).unwrap();
|
||||
let signing_key =
|
||||
SigningKey::read_pkcs8_pem_file(private_key_path).expect("failed to parse private key PEM");
|
||||
let signature = signing_key.sign(message.as_bytes());
|
||||
|
||||
let private_key = PKey::private_key_from_pem(&key_data).unwrap();
|
||||
let mut signer = Signer::new_without_digest(&private_key).unwrap();
|
||||
|
||||
let signature = signer.sign_oneshot_to_vec(message.as_bytes()).unwrap();
|
||||
|
||||
general_purpose::STANDARD.encode(&signature)
|
||||
general_purpose::STANDARD.encode(signature.to_bytes())
|
||||
}
|
||||
|
||||
fn parse_env(cfg: &mut MyConfig) {
|
||||
|
||||
Reference in New Issue
Block a user