Skip to content

Commit

Permalink
Merge branch 'develop' of github.com:dashevo/grovedb into develop
Browse files Browse the repository at this point in the history
  • Loading branch information
QuantumExplorer committed Jul 21, 2024
2 parents d4e550d + 4d14ae3 commit 875d6c8
Show file tree
Hide file tree
Showing 6 changed files with 31 additions and 36 deletions.
4 changes: 0 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -237,10 +237,6 @@ From here we can build:
There is a work in progress implementation of a debugger layer for GroveDB. To use this library with
these capabilities enabled one needs to set a dependency with `grovedbg` feature.

At build time this requires two environment dependencies:
1. `wasm32-unknown-unknown` Rust toolchain;
2. [trunk](https://trunkrs.dev/) utility.

Then, to launch visualizer tool to observe the database structure inside of your browser on a port,
let's say 10000, the following snippet should do:

Expand Down
6 changes: 4 additions & 2 deletions grovedb/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ tower-http = { version = "0.5.2", features = ["fs"], optional = true }
blake3 = "1.4.0"
bitvec = "1"
zip-extensions = { version ="0.6.2", optional = true }
grovedb-version = { version = "1.0.0-rc.2", path = "../grovedb-version" }
grovedb-version = "1.0.0-rc.2"

[dev-dependencies]
rand = "0.8.5"
Expand Down Expand Up @@ -82,4 +82,6 @@ grovedbg = [
]

[build-dependencies]
zip-extensions = "0.6.2"
hex-literal = "0.4.1"
reqwest = { version = "0.12.5", features = ["blocking"] }
sha2 = "0.10.8"
49 changes: 23 additions & 26 deletions grovedb/build.rs
Original file line number Diff line number Diff line change
@@ -1,36 +1,33 @@
#[cfg(feature = "grovedbg")]
fn main() {
use std::{
env,
path::PathBuf,
process::{Command, ExitStatus, Output},
};
use std::{env, fs::File, io::Cursor, path::PathBuf};

use hex_literal::hex;
use sha2::{digest::FixedOutput, Digest, Sha256};

const GROVEDBG_SHA256: [u8; 32] =
hex!("206d865949e7f12b843c342cea3b172d4c78d4eb754b80d272164d59f62a2276");
const GROVEDBG_VERSION: &str = "v1.0.0-rc.3";

let out_dir = PathBuf::from(&env::var_os("OUT_DIR").unwrap());
let grovedbg_zip_path = out_dir.join("grovedbg.zip");

if !grovedbg_zip_path.exists() {
let response = reqwest::blocking::get(format!("https://github.com/dashpay/grovedbg/releases/download/{GROVEDBG_VERSION}/grovedbg-{GROVEDBG_VERSION}.zip"))
.expect("can't download GroveDBG artifact");

let Output {
status,
stdout,
stderr,
} = Command::new("trunk")
.arg("build")
.arg("--release")
.arg("--dist")
.arg(&out_dir)
.arg("grovedbg/index.html")
.output()
.expect("cannot start trunk process");

if !status.success() {
let stdout_msg = String::from_utf8_lossy(&stdout);
let stderr_msg = String::from_utf8_lossy(&stderr);
let bindgen_version = env::var_os("TRUNK_TOOLS_WASM_BINDGEN").unwrap_or_default();
panic!("Error running `trunk build --release`\nbindgen version:{bindgen_version:?}\n{stdout_msg}\n{stderr_msg}");
let mut grovedbg_zip = File::create(&grovedbg_zip_path).unwrap();
let mut content = Cursor::new(response.bytes().unwrap());
std::io::copy(&mut content, &mut grovedbg_zip).unwrap();
}

let zip_file = out_dir.join("grovedbg.zip");
zip_extensions::write::zip_create_from_directory(&zip_file, &out_dir)
.expect("can't create a grovedbg zip archive");
let mut grovedbg_zip = File::open(&grovedbg_zip_path).unwrap();

let mut sha256 = Sha256::new();
std::io::copy(&mut grovedbg_zip, &mut sha256).unwrap();
let hash = sha256.finalize_fixed();

assert_eq!(hash.as_slice(), GROVEDBG_SHA256);
}

#[cfg(not(feature = "grovedbg"))]
Expand Down
4 changes: 2 additions & 2 deletions grovedb/src/element/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -121,7 +121,7 @@ impl fmt::Display for Element {
Element::SumItem(sum_value, flags) => {
write!(
f,
"SumItem({}{}",
"SumItem({}{})",
sum_value,
flags
.as_ref()
Expand All @@ -131,7 +131,7 @@ impl fmt::Display for Element {
Element::SumTree(root_key, sum_value, flags) => {
write!(
f,
"SumTree({}, {}{}",
"SumTree({}, {}{})",
root_key.as_ref().map_or("None".to_string(), hex::encode),
sum_value,
flags
Expand Down
2 changes: 1 addition & 1 deletion merk/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ grovedb-costs = { version = "1.0.0-rc.2", path = "../costs" }
grovedb-visualize = { version = "1.0.0-rc.2", path = "../visualize" }
grovedb-path = { version = "1.0.0-rc.2", path = "../path" }
hex = { version = "0.4.3" }
grovedb-version = { version = "1.0.0-rc.2", path = "../grovedb-version" }
grovedb-version = "1.0.0-rc.2"

[dependencies.time]
version = "0.3.34"
Expand Down
2 changes: 1 addition & 1 deletion node-grove/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ crate-type = ["cdylib"]

[dependencies]
grovedb = { path = "../grovedb", features = ["full", "estimated_costs"] }
grovedb-version = { path = "../grovedb-version" }
grovedb-version = "1.0.0-rc.2"

[dependencies.neon]
version = "0.10.1"
Expand Down

0 comments on commit 875d6c8

Please sign in to comment.