mirror of
https://github.com/bitcoinresearchkit/brk.git
synced 2026-06-27 06:34:30 -07:00
Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 11911c1898 | |||
| 4814c1971d |
Generated
+15
-15
@@ -471,7 +471,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "brk"
|
||||
version = "0.0.82"
|
||||
version = "0.0.83"
|
||||
dependencies = [
|
||||
"brk_bundler",
|
||||
"brk_cli",
|
||||
@@ -491,7 +491,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "brk_bundler"
|
||||
version = "0.0.82"
|
||||
version = "0.0.83"
|
||||
dependencies = [
|
||||
"brk_rolldown",
|
||||
"log",
|
||||
@@ -502,7 +502,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "brk_cli"
|
||||
version = "0.0.82"
|
||||
version = "0.0.83"
|
||||
dependencies = [
|
||||
"bitcoincore-rpc",
|
||||
"brk_computer",
|
||||
@@ -525,7 +525,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "brk_computer"
|
||||
version = "0.0.82"
|
||||
version = "0.0.83"
|
||||
dependencies = [
|
||||
"bincode",
|
||||
"bitcoin",
|
||||
@@ -548,7 +548,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "brk_core"
|
||||
version = "0.0.82"
|
||||
version = "0.0.83"
|
||||
dependencies = [
|
||||
"bincode",
|
||||
"bitcoin",
|
||||
@@ -569,7 +569,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "brk_exit"
|
||||
version = "0.0.82"
|
||||
version = "0.0.83"
|
||||
dependencies = [
|
||||
"brk_logger",
|
||||
"ctrlc",
|
||||
@@ -579,7 +579,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "brk_fetcher"
|
||||
version = "0.0.82"
|
||||
version = "0.0.83"
|
||||
dependencies = [
|
||||
"brk_core",
|
||||
"brk_logger",
|
||||
@@ -591,7 +591,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "brk_indexer"
|
||||
version = "0.0.82"
|
||||
version = "0.0.83"
|
||||
dependencies = [
|
||||
"bitcoin",
|
||||
"bitcoincore-rpc",
|
||||
@@ -609,7 +609,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "brk_interface"
|
||||
version = "0.0.82"
|
||||
version = "0.0.83"
|
||||
dependencies = [
|
||||
"brk_computer",
|
||||
"brk_core",
|
||||
@@ -627,7 +627,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "brk_logger"
|
||||
version = "0.0.82"
|
||||
version = "0.0.83"
|
||||
dependencies = [
|
||||
"color-eyre",
|
||||
"env_logger",
|
||||
@@ -637,7 +637,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "brk_mcp"
|
||||
version = "0.0.82"
|
||||
version = "0.0.83"
|
||||
dependencies = [
|
||||
"axum",
|
||||
"brk_interface",
|
||||
@@ -647,7 +647,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "brk_parser"
|
||||
version = "0.0.82"
|
||||
version = "0.0.83"
|
||||
dependencies = [
|
||||
"bitcoin",
|
||||
"bitcoincore-rpc",
|
||||
@@ -973,7 +973,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "brk_server"
|
||||
version = "0.0.82"
|
||||
version = "0.0.83"
|
||||
dependencies = [
|
||||
"axum",
|
||||
"bitcoincore-rpc",
|
||||
@@ -1004,7 +1004,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "brk_store"
|
||||
version = "0.0.82"
|
||||
version = "0.0.83"
|
||||
dependencies = [
|
||||
"brk_core",
|
||||
"byteview",
|
||||
@@ -1026,7 +1026,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "brk_vecs"
|
||||
version = "0.0.82"
|
||||
version = "0.0.83"
|
||||
dependencies = [
|
||||
"brk_core",
|
||||
"brk_exit",
|
||||
|
||||
+15
-15
@@ -4,7 +4,7 @@ members = ["crates/*"]
|
||||
package.description = "The Bitcoin Research Kit is a suite of tools designed to extract, compute and display data stored on a Bitcoin Core node"
|
||||
package.license = "MIT"
|
||||
package.edition = "2024"
|
||||
package.version = "0.0.82"
|
||||
package.version = "0.0.83"
|
||||
package.homepage = "https://bitcoinresearchkit.org"
|
||||
package.repository = "https://github.com/bitcoinresearchkit/brk"
|
||||
package.readme = "README.md"
|
||||
@@ -26,20 +26,20 @@ axum = "0.8.4"
|
||||
bincode = { version = "2.0.1", features = ["serde"] }
|
||||
bitcoin = { version = "0.32.6", features = ["serde"] }
|
||||
bitcoincore-rpc = "0.19.0"
|
||||
brk_bundler = { version = "0.0.82", path = "crates/brk_bundler" }
|
||||
brk_cli = { version = "0.0.82", path = "crates/brk_cli" }
|
||||
brk_computer = { version = "0.0.82", path = "crates/brk_computer" }
|
||||
brk_core = { version = "0.0.82", path = "crates/brk_core" }
|
||||
brk_exit = { version = "0.0.82", path = "crates/brk_exit" }
|
||||
brk_fetcher = { version = "0.0.82", path = "crates/brk_fetcher" }
|
||||
brk_indexer = { version = "0.0.82", path = "crates/brk_indexer" }
|
||||
brk_interface = { version = "0.0.82", path = "crates/brk_interface" }
|
||||
brk_logger = { version = "0.0.82", path = "crates/brk_logger" }
|
||||
brk_mcp = { version = "0.0.82", path = "crates/brk_mcp" }
|
||||
brk_parser = { version = "0.0.82", path = "crates/brk_parser" }
|
||||
brk_server = { version = "0.0.82", path = "crates/brk_server" }
|
||||
brk_store = { version = "0.0.82", path = "crates/brk_store" }
|
||||
brk_vecs = { version = "0.0.82", path = "crates/brk_vecs" }
|
||||
brk_bundler = { version = "0.0.83", path = "crates/brk_bundler" }
|
||||
brk_cli = { version = "0.0.83", path = "crates/brk_cli" }
|
||||
brk_computer = { version = "0.0.83", path = "crates/brk_computer" }
|
||||
brk_core = { version = "0.0.83", path = "crates/brk_core" }
|
||||
brk_exit = { version = "0.0.83", path = "crates/brk_exit" }
|
||||
brk_fetcher = { version = "0.0.83", path = "crates/brk_fetcher" }
|
||||
brk_indexer = { version = "0.0.83", path = "crates/brk_indexer" }
|
||||
brk_interface = { version = "0.0.83", path = "crates/brk_interface" }
|
||||
brk_logger = { version = "0.0.83", path = "crates/brk_logger" }
|
||||
brk_mcp = { version = "0.0.83", path = "crates/brk_mcp" }
|
||||
brk_parser = { version = "0.0.83", path = "crates/brk_parser" }
|
||||
brk_server = { version = "0.0.83", path = "crates/brk_server" }
|
||||
brk_store = { version = "0.0.83", path = "crates/brk_store" }
|
||||
brk_vecs = { version = "0.0.83", path = "crates/brk_vecs" }
|
||||
byteview = "=0.6.1"
|
||||
clap = { version = "4.5.41", features = ["string"] }
|
||||
clap_derive = "4.5.41"
|
||||
|
||||
@@ -475,15 +475,15 @@ impl File {
|
||||
|
||||
fn punch_hole(&self, start: u64, length: u64) -> Result<()> {
|
||||
let file = self.file.write();
|
||||
Self::punch_hole_macos(&file, start, length)
|
||||
Self::punch_hole_impl(&file, start, length)
|
||||
}
|
||||
|
||||
fn punch_hole_(file: &fs::File, start: u64, length: u64) -> Result<()> {
|
||||
Self::punch_hole_macos(file, start, length)
|
||||
Self::punch_hole_impl(file, start, length)
|
||||
}
|
||||
|
||||
#[cfg(target_os = "macos")]
|
||||
fn punch_hole_macos(file: &fs::File, start: u64, length: u64) -> Result<()> {
|
||||
fn punch_hole_impl(file: &fs::File, start: u64, length: u64) -> Result<()> {
|
||||
let fpunchhole = FPunchhole {
|
||||
fp_flags: 0,
|
||||
reserved: 0,
|
||||
@@ -506,6 +506,32 @@ impl File {
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
||||
#[cfg(target_os = "linux")]
|
||||
fn punch_hole_impl(file: &fs::File, start: u64, length: u64) -> Result<()> {
|
||||
let result = unsafe {
|
||||
libc::fallocate(
|
||||
file.as_raw_fd(),
|
||||
libc::FALLOC_FL_PUNCH_HOLE | libc::FALLOC_FL_KEEP_SIZE,
|
||||
start as libc::off_t,
|
||||
length as libc::off_t,
|
||||
)
|
||||
};
|
||||
|
||||
if result == -1 {
|
||||
let err = std::io::Error::last_os_error();
|
||||
return Err(Error::String(format!("Failed to punch hole: {err}")));
|
||||
}
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
||||
#[cfg(not(any(target_os = "macos", target_os = "linux")))]
|
||||
fn punch_hole_impl(_file: &fs::File, _start: u64, _length: u64) -> Result<()> {
|
||||
Err(Error::String(
|
||||
"Hole punching not supported on this platform".to_string(),
|
||||
))
|
||||
}
|
||||
}
|
||||
|
||||
#[repr(C)]
|
||||
|
||||
Reference in New Issue
Block a user