From 3e82b0439da702a5df9e81ac00725d1b8c1e386f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jose=CC=81=20Duarte?= Date: Wed, 15 May 2024 11:10:39 +0100 Subject: [PATCH 01/63] feat(file-storage): initialize library and binary --- Cargo.lock | 4 ++++ Cargo.toml | 6 ++++-- storage/file-storage/.gitkeep | 0 storage/file-storage/Cargo.toml | 15 +++++++++++++++ storage/file-storage/src/lib.rs | 14 ++++++++++++++ storage/file-storage/src/main.rs | 1 + 6 files changed, 38 insertions(+), 2 deletions(-) delete mode 100644 storage/file-storage/.gitkeep create mode 100644 storage/file-storage/Cargo.toml create mode 100644 storage/file-storage/src/lib.rs create mode 100644 storage/file-storage/src/main.rs diff --git a/Cargo.lock b/Cargo.lock index adef49283..1cca1a6a0 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3233,6 +3233,10 @@ dependencies = [ "log", ] +[[package]] +name = "file-storage" +version = "0.1.0" + [[package]] name = "filetime" version = "0.2.23" diff --git a/Cargo.toml b/Cargo.toml index 21e5ab904..9dcc5171c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -6,8 +6,8 @@ license-file = "LICENSE" repository = "https://github.com/eigerco/polka-storage" [workspace] -members = ["node", "runtime"] resolver = "2" +members = ["node", "runtime", "storage/file-storage"] # FIXME(#@jmg-duarte,#7,14/5/24): remove the patch once something >1.11.0 is released [patch.'https://github.com/paritytech/litep2p'] @@ -92,7 +92,9 @@ substrate-prometheus-endpoint = { git = "https://github.com/paritytech/polkadot- # Polkadot pallet-xcm = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-v1.11.0", default-features = false } -polkadot-cli = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-v1.11.0", features = ["rococo-native"] } +polkadot-cli = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-v1.11.0", features = [ + "rococo-native", +] } polkadot-parachain-primitives = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-v1.11.0", default-features = false } polkadot-primitives = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-v1.11.0" } polkadot-runtime-common = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-v1.11.0", default-features = false } diff --git a/storage/file-storage/.gitkeep b/storage/file-storage/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/storage/file-storage/Cargo.toml b/storage/file-storage/Cargo.toml new file mode 100644 index 000000000..298ac5d85 --- /dev/null +++ b/storage/file-storage/Cargo.toml @@ -0,0 +1,15 @@ +[package] +name = "file-storage" +version = "0.1.0" +edition.workspace = true +repository.workspace = true +homepage.workspace = true +authors.workspace = true +license-file.workspace = true +publish = false + + +[dependencies] + +[lints] +workspace = true diff --git a/storage/file-storage/src/lib.rs b/storage/file-storage/src/lib.rs new file mode 100644 index 000000000..7d12d9af8 --- /dev/null +++ b/storage/file-storage/src/lib.rs @@ -0,0 +1,14 @@ +pub fn add(left: usize, right: usize) -> usize { + left + right +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn it_works() { + let result = add(2, 2); + assert_eq!(result, 4); + } +} diff --git a/storage/file-storage/src/main.rs b/storage/file-storage/src/main.rs new file mode 100644 index 000000000..f328e4d9d --- /dev/null +++ b/storage/file-storage/src/main.rs @@ -0,0 +1 @@ +fn main() {} From d7d703c081aae347ccea1c5ec90d699404f596c9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jose=CC=81=20Duarte?= Date: Wed, 15 May 2024 15:08:17 +0100 Subject: [PATCH 02/63] feat(file-storage): start UnixFS implementation --- Cargo.lock | 67 ++++++ Cargo.toml | 3 + storage/file-storage/Cargo.toml | 5 + storage/file-storage/src/lib.rs | 15 +- storage/file-storage/src/unixfs/mod.rs | 1 + .../file-storage/src/unixfs/unixfs_v1.proto | 34 +++ storage/file-storage/src/unixfs/unixfs_v1.rs | 193 ++++++++++++++++++ 7 files changed, 304 insertions(+), 14 deletions(-) create mode 100644 storage/file-storage/src/unixfs/mod.rs create mode 100644 storage/file-storage/src/unixfs/unixfs_v1.proto create mode 100644 storage/file-storage/src/unixfs/unixfs_v1.rs diff --git a/Cargo.lock b/Cargo.lock index 1cca1a6a0..79ad5e5d7 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3236,6 +3236,12 @@ dependencies = [ [[package]] name = "file-storage" version = "0.1.0" +dependencies = [ + "clap", + "quick-protobuf", + "rs-car", + "tokio", +] [[package]] name = "filetime" @@ -4713,6 +4719,55 @@ version = "0.2.154" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ae743338b92ff9146ce83992f766a31066a91a8c84a45e0e9f21e7cf6de6d346" +[[package]] +name = "libipld" +version = "0.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1ccd6b8ffb3afee7081fcaec00e1b099fd1c7ccf35ba5729d88538fcc3b4599" +dependencies = [ + "fnv", + "libipld-cbor", + "libipld-core", + "libipld-macro", + "log", + "multihash 0.18.1", + "thiserror", +] + +[[package]] +name = "libipld-cbor" +version = "0.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77d98c9d1747aa5eef1cf099cd648c3fd2d235249f5fed07522aaebc348e423b" +dependencies = [ + "byteorder", + "libipld-core", + "thiserror", +] + +[[package]] +name = "libipld-core" +version = "0.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5acd707e8d8b092e967b2af978ed84709eaded82b75effe6cb6f6cc797ef8158" +dependencies = [ + "anyhow", + "cid 0.10.1", + "core2", + "multibase", + "multihash 0.18.1", + "thiserror", +] + +[[package]] +name = "libipld-macro" +version = "0.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "71171c54214f866ae6722f3027f81dff0931e600e5a61e6b1b6a49ca0b5ed4ae" +dependencies = [ + "libipld-core", +] + [[package]] name = "libloading" version = "0.8.3" @@ -9957,6 +10012,18 @@ dependencies = [ "windows-sys 0.48.0", ] +[[package]] +name = "rs-car" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf69c4017006c0101362b5df74ee230331703e9938f970468dc1e429afe12998" +dependencies = [ + "blake2b_simd", + "futures", + "libipld", + "sha2 0.10.8", +] + [[package]] name = "rtnetlink" version = "0.10.1" diff --git a/Cargo.toml b/Cargo.toml index 9dcc5171c..a10a83f1e 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -49,6 +49,9 @@ smallvec = "1.11.0" syn = { version = "2.0.53" } thiserror = { version = "1.0.48" } tracing-subscriber = { version = "0.3.18" } +rs-car = "0.4.1" +tokio = "1.37.0" +quick-protobuf = "0.8.1" # Local polka-storage-runtime = { path = "runtime" } diff --git a/storage/file-storage/Cargo.toml b/storage/file-storage/Cargo.toml index 298ac5d85..5e57fa26b 100644 --- a/storage/file-storage/Cargo.toml +++ b/storage/file-storage/Cargo.toml @@ -10,6 +10,11 @@ publish = false [dependencies] +rs-car = { workspace = true } +# TODO(@jmg-duarte,15/05/2024): reduce the required features +tokio = { workspace = true, features = ["full"] } +clap = { workspace = true, features = ["derive"] } +quick-protobuf = { workspace = true } [lints] workspace = true diff --git a/storage/file-storage/src/lib.rs b/storage/file-storage/src/lib.rs index 7d12d9af8..021b6614a 100644 --- a/storage/file-storage/src/lib.rs +++ b/storage/file-storage/src/lib.rs @@ -1,14 +1 @@ -pub fn add(left: usize, right: usize) -> usize { - left + right -} - -#[cfg(test)] -mod tests { - use super::*; - - #[test] - fn it_works() { - let result = add(2, 2); - assert_eq!(result, 4); - } -} +mod unixfs; diff --git a/storage/file-storage/src/unixfs/mod.rs b/storage/file-storage/src/unixfs/mod.rs new file mode 100644 index 000000000..b75eb4ae0 --- /dev/null +++ b/storage/file-storage/src/unixfs/mod.rs @@ -0,0 +1 @@ +pub mod unixfs_v1; diff --git a/storage/file-storage/src/unixfs/unixfs_v1.proto b/storage/file-storage/src/unixfs/unixfs_v1.proto new file mode 100644 index 000000000..7a94d8f7f --- /dev/null +++ b/storage/file-storage/src/unixfs/unixfs_v1.proto @@ -0,0 +1,34 @@ +// UnixFS v1 Protobuf definition +// For more information see: +// https://github.com/ipfs/specs/blob/e4e5754ad4a4bfbb2ebe63f4c27631f573703de0/UNIXFS.md + +syntax = "proto2"; + +message Data { + enum DataType { + Raw = 0; + Directory = 1; + File = 2; + Metadata = 3; + Symlink = 4; + HAMTShard = 5; + } + + required DataType Type = 1; + optional bytes Data = 2; + optional uint64 filesize = 3; + repeated uint64 blocksizes = 4; + optional uint64 hashType = 5; + optional uint64 fanout = 6; + optional uint32 mode = 7; + optional UnixTime mtime = 8; +} + +message Metadata { + optional string MimeType = 1; +} + +message UnixTime { + required int64 Seconds = 1; + optional fixed32 FractionalNanoseconds = 2; +} diff --git a/storage/file-storage/src/unixfs/unixfs_v1.rs b/storage/file-storage/src/unixfs/unixfs_v1.rs new file mode 100644 index 000000000..76d12ce2b --- /dev/null +++ b/storage/file-storage/src/unixfs/unixfs_v1.rs @@ -0,0 +1,193 @@ +// Automatically generated rust module for 'unixfs_v1.proto' file + +#![allow(non_snake_case)] +#![allow(non_upper_case_globals)] +#![allow(non_camel_case_types)] +#![allow(unused_imports)] +#![allow(unknown_lints)] +#![allow(clippy::all)] +#![cfg_attr(rustfmt, rustfmt_skip)] + + +use std::borrow::Cow; +use quick_protobuf::{MessageInfo, MessageRead, MessageWrite, BytesReader, Writer, WriterBackend, Result}; +use quick_protobuf::sizeofs::*; +use super::*; + +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Debug, Default, PartialEq, Clone)] +pub struct Data<'a> { + pub Type: mod_Data::DataType, + pub Data: Option>, + pub filesize: Option, + pub blocksizes: Vec, + pub hashType: Option, + pub fanout: Option, + pub mode: Option, + pub mtime: Option, +} + +impl<'a> MessageRead<'a> for Data<'a> { + fn from_reader(r: &mut BytesReader, bytes: &'a [u8]) -> Result { + let mut msg = Self::default(); + while !r.is_eof() { + match r.next_tag(bytes) { + Ok(8) => msg.Type = r.read_enum(bytes)?, + Ok(18) => msg.Data = Some(r.read_bytes(bytes).map(Cow::Borrowed)?), + Ok(24) => msg.filesize = Some(r.read_uint64(bytes)?), + Ok(32) => msg.blocksizes.push(r.read_uint64(bytes)?), + Ok(40) => msg.hashType = Some(r.read_uint64(bytes)?), + Ok(48) => msg.fanout = Some(r.read_uint64(bytes)?), + Ok(56) => msg.mode = Some(r.read_uint32(bytes)?), + Ok(66) => msg.mtime = Some(r.read_message::(bytes)?), + Ok(t) => { r.read_unknown(bytes, t)?; } + Err(e) => return Err(e), + } + } + Ok(msg) + } +} + +impl<'a> MessageWrite for Data<'a> { + fn get_size(&self) -> usize { + 0 + + 1 + sizeof_varint(*(&self.Type) as u64) + + self.Data.as_ref().map_or(0, |m| 1 + sizeof_len((m).len())) + + self.filesize.as_ref().map_or(0, |m| 1 + sizeof_varint(*(m) as u64)) + + self.blocksizes.iter().map(|s| 1 + sizeof_varint(*(s) as u64)).sum::() + + self.hashType.as_ref().map_or(0, |m| 1 + sizeof_varint(*(m) as u64)) + + self.fanout.as_ref().map_or(0, |m| 1 + sizeof_varint(*(m) as u64)) + + self.mode.as_ref().map_or(0, |m| 1 + sizeof_varint(*(m) as u64)) + + self.mtime.as_ref().map_or(0, |m| 1 + sizeof_len((m).get_size())) + } + + fn write_message(&self, w: &mut Writer) -> Result<()> { + w.write_with_tag(8, |w| w.write_enum(*&self.Type as i32))?; + if let Some(ref s) = self.Data { w.write_with_tag(18, |w| w.write_bytes(&**s))?; } + if let Some(ref s) = self.filesize { w.write_with_tag(24, |w| w.write_uint64(*s))?; } + for s in &self.blocksizes { w.write_with_tag(32, |w| w.write_uint64(*s))?; } + if let Some(ref s) = self.hashType { w.write_with_tag(40, |w| w.write_uint64(*s))?; } + if let Some(ref s) = self.fanout { w.write_with_tag(48, |w| w.write_uint64(*s))?; } + if let Some(ref s) = self.mode { w.write_with_tag(56, |w| w.write_uint32(*s))?; } + if let Some(ref s) = self.mtime { w.write_with_tag(66, |w| w.write_message(s))?; } + Ok(()) + } +} + +pub mod mod_Data { + + +#[derive(Debug, PartialEq, Eq, Clone, Copy)] +pub enum DataType { + Raw = 0, + Directory = 1, + File = 2, + Metadata = 3, + Symlink = 4, + HAMTShard = 5, +} + +impl Default for DataType { + fn default() -> Self { + DataType::Raw + } +} + +impl From for DataType { + fn from(i: i32) -> Self { + match i { + 0 => DataType::Raw, + 1 => DataType::Directory, + 2 => DataType::File, + 3 => DataType::Metadata, + 4 => DataType::Symlink, + 5 => DataType::HAMTShard, + _ => Self::default(), + } + } +} + +impl<'a> From<&'a str> for DataType { + fn from(s: &'a str) -> Self { + match s { + "Raw" => DataType::Raw, + "Directory" => DataType::Directory, + "File" => DataType::File, + "Metadata" => DataType::Metadata, + "Symlink" => DataType::Symlink, + "HAMTShard" => DataType::HAMTShard, + _ => Self::default(), + } + } +} + +} + +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Debug, Default, PartialEq, Clone)] +pub struct Metadata<'a> { + pub MimeType: Option>, +} + +impl<'a> MessageRead<'a> for Metadata<'a> { + fn from_reader(r: &mut BytesReader, bytes: &'a [u8]) -> Result { + let mut msg = Self::default(); + while !r.is_eof() { + match r.next_tag(bytes) { + Ok(10) => msg.MimeType = Some(r.read_string(bytes).map(Cow::Borrowed)?), + Ok(t) => { r.read_unknown(bytes, t)?; } + Err(e) => return Err(e), + } + } + Ok(msg) + } +} + +impl<'a> MessageWrite for Metadata<'a> { + fn get_size(&self) -> usize { + 0 + + self.MimeType.as_ref().map_or(0, |m| 1 + sizeof_len((m).len())) + } + + fn write_message(&self, w: &mut Writer) -> Result<()> { + if let Some(ref s) = self.MimeType { w.write_with_tag(10, |w| w.write_string(&**s))?; } + Ok(()) + } +} + +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Debug, Default, PartialEq, Clone)] +pub struct UnixTime { + pub Seconds: i64, + pub FractionalNanoseconds: Option, +} + +impl<'a> MessageRead<'a> for UnixTime { + fn from_reader(r: &mut BytesReader, bytes: &'a [u8]) -> Result { + let mut msg = Self::default(); + while !r.is_eof() { + match r.next_tag(bytes) { + Ok(8) => msg.Seconds = r.read_int64(bytes)?, + Ok(21) => msg.FractionalNanoseconds = Some(r.read_fixed32(bytes)?), + Ok(t) => { r.read_unknown(bytes, t)?; } + Err(e) => return Err(e), + } + } + Ok(msg) + } +} + +impl MessageWrite for UnixTime { + fn get_size(&self) -> usize { + 0 + + 1 + sizeof_varint(*(&self.Seconds) as u64) + + self.FractionalNanoseconds.as_ref().map_or(0, |_| 1 + 4) + } + + fn write_message(&self, w: &mut Writer) -> Result<()> { + w.write_with_tag(8, |w| w.write_int64(*&self.Seconds))?; + if let Some(ref s) = self.FractionalNanoseconds { w.write_with_tag(21, |w| w.write_fixed32(*s))?; } + Ok(()) + } +} + From 2333531f884a22013c8ad4671c96fb1c89327dcc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jose=CC=81=20Duarte?= Date: Thu, 16 May 2024 12:00:32 +0100 Subject: [PATCH 03/63] docs: update README --- storage/file-storage/README.md | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 storage/file-storage/README.md diff --git a/storage/file-storage/README.md b/storage/file-storage/README.md new file mode 100644 index 000000000..5fb470294 --- /dev/null +++ b/storage/file-storage/README.md @@ -0,0 +1,3 @@ +CARv1 specification: https://ipld.io/specs/transport/car/carv1/ +CARv2 specification: https://ipld.io/specs/transport/car/carv2/ +UnixFS specification: https://github.com/ipfs/specs/blob/e4e5754ad4a4bfbb2ebe63f4c27631f573703de0/UNIXFS.md From 124a11ee28ee04bd15e3705ab2e5ba5755e0a642 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jose=CC=81=20Duarte?= Date: Thu, 16 May 2024 17:48:40 +0100 Subject: [PATCH 04/63] feat(file-storage): start implenting UnixFS chunking --- Cargo.lock | 145 +++++++------ Cargo.toml | 8 + storage/file-storage/Cargo.toml | 10 +- storage/file-storage/src/car/car_v1.rs | 98 +++++++++ storage/file-storage/src/car/chunker.rs | 122 +++++++++++ storage/file-storage/src/car/mod.rs | 2 + storage/file-storage/src/lib.rs | 2 +- storage/file-storage/src/unixfs/mod.rs | 1 - .../file-storage/src/unixfs/unixfs_v1.proto | 34 --- storage/file-storage/src/unixfs/unixfs_v1.rs | 193 ------------------ storage/file-storage/tests/fixtures/lorem.txt | 10 + .../tests/fixtures/lorem_1024.txt | 2 + .../tests/fixtures/lorem_4096_dup.txt | 5 + 13 files changed, 334 insertions(+), 298 deletions(-) create mode 100644 storage/file-storage/src/car/car_v1.rs create mode 100644 storage/file-storage/src/car/chunker.rs create mode 100644 storage/file-storage/src/car/mod.rs delete mode 100644 storage/file-storage/src/unixfs/mod.rs delete mode 100644 storage/file-storage/src/unixfs/unixfs_v1.proto delete mode 100644 storage/file-storage/src/unixfs/unixfs_v1.rs create mode 100644 storage/file-storage/tests/fixtures/lorem.txt create mode 100644 storage/file-storage/tests/fixtures/lorem_1024.txt create mode 100644 storage/file-storage/tests/fixtures/lorem_4096_dup.txt diff --git a/Cargo.lock b/Cargo.lock index 79ad5e5d7..33684b8d8 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1220,6 +1220,15 @@ dependencies = [ "thiserror", ] +[[package]] +name = "cbor4ii" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b544cf8c89359205f4f990d0e6f3828db42df85b5dac95d09157a250eb0749c4" +dependencies = [ + "serde", +] + [[package]] name = "cc" version = "1.0.97" @@ -1319,7 +1328,7 @@ dependencies = [ "multibase", "multihash 0.17.0", "serde", - "unsigned-varint", + "unsigned-varint 0.7.2", ] [[package]] @@ -1332,7 +1341,21 @@ dependencies = [ "multibase", "multihash 0.18.1", "serde", - "unsigned-varint", + "unsigned-varint 0.7.2", +] + +[[package]] +name = "cid" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3147d8272e8fa0ccd29ce51194dd98f79ddfb8191ba9e3409884e751798acf3a" +dependencies = [ + "core2", + "multibase", + "multihash 0.19.1", + "serde", + "serde_bytes", + "unsigned-varint 0.8.0", ] [[package]] @@ -3238,8 +3261,16 @@ name = "file-storage" version = "0.1.0" dependencies = [ "clap", + "digest 0.10.7", + "fallible-iterator 0.3.0", + "ipld-core", "quick-protobuf", - "rs-car", + "rand 0.8.5", + "rs_merkle", + "serde", + "serde_ipld_dagcbor", + "sha2 0.10.8", + "thiserror", "tokio", ] @@ -4421,6 +4452,17 @@ dependencies = [ "winreg", ] +[[package]] +name = "ipld-core" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4ede82a79e134f179f4b29b5fdb1eb92bd1b38c4dfea394c539051150a21b9b" +dependencies = [ + "cid 0.11.1", + "serde", + "serde_bytes", +] + [[package]] name = "ipnet" version = "2.9.0" @@ -4719,55 +4761,6 @@ version = "0.2.154" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ae743338b92ff9146ce83992f766a31066a91a8c84a45e0e9f21e7cf6de6d346" -[[package]] -name = "libipld" -version = "0.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1ccd6b8ffb3afee7081fcaec00e1b099fd1c7ccf35ba5729d88538fcc3b4599" -dependencies = [ - "fnv", - "libipld-cbor", - "libipld-core", - "libipld-macro", - "log", - "multihash 0.18.1", - "thiserror", -] - -[[package]] -name = "libipld-cbor" -version = "0.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77d98c9d1747aa5eef1cf099cd648c3fd2d235249f5fed07522aaebc348e423b" -dependencies = [ - "byteorder", - "libipld-core", - "thiserror", -] - -[[package]] -name = "libipld-core" -version = "0.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5acd707e8d8b092e967b2af978ed84709eaded82b75effe6cb6f6cc797ef8158" -dependencies = [ - "anyhow", - "cid 0.10.1", - "core2", - "multibase", - "multihash 0.18.1", - "thiserror", -] - -[[package]] -name = "libipld-macro" -version = "0.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "71171c54214f866ae6722f3027f81dff0931e600e5a61e6b1b6a49ca0b5ed4ae" -dependencies = [ - "libipld-core", -] - [[package]] name = "libloading" version = "0.8.3" @@ -4865,7 +4858,7 @@ dependencies = [ "rw-stream-sink", "smallvec", "thiserror", - "unsigned-varint", + "unsigned-varint 0.7.2", "void", ] @@ -4947,7 +4940,7 @@ dependencies = [ "smallvec", "thiserror", "uint", - "unsigned-varint", + "unsigned-varint 0.7.2", "void", ] @@ -5370,7 +5363,7 @@ dependencies = [ "tracing", "trust-dns-resolver 0.23.2", "uint", - "unsigned-varint", + "unsigned-varint 0.7.2", "url", "webpki", "x25519-dalek 2.0.1", @@ -5728,7 +5721,7 @@ dependencies = [ "percent-encoding", "serde", "static_assertions", - "unsigned-varint", + "unsigned-varint 0.7.2", "url", ] @@ -5757,7 +5750,7 @@ dependencies = [ "multihash-derive 0.8.0", "sha2 0.10.8", "sha3", - "unsigned-varint", + "unsigned-varint 0.7.2", ] [[package]] @@ -5774,7 +5767,7 @@ dependencies = [ "multihash-derive 0.8.0", "sha2 0.10.8", "sha3", - "unsigned-varint", + "unsigned-varint 0.7.2", ] [[package]] @@ -5784,7 +5777,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "076d548d76a0e2a0d4ab471d0b1c36c577786dfc4471242035d97a12a735c492" dependencies = [ "core2", - "unsigned-varint", + "serde", + "unsigned-varint 0.7.2", ] [[package]] @@ -5863,7 +5857,7 @@ dependencies = [ "log", "pin-project", "smallvec", - "unsigned-varint", + "unsigned-varint 0.7.2", ] [[package]] @@ -9440,7 +9434,7 @@ dependencies = [ "bytes", "quick-protobuf", "thiserror", - "unsigned-varint", + "unsigned-varint 0.7.2", ] [[package]] @@ -10013,14 +10007,11 @@ dependencies = [ ] [[package]] -name = "rs-car" -version = "0.4.1" +name = "rs_merkle" +version = "1.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf69c4017006c0101362b5df74ee230331703e9938f970468dc1e429afe12998" +checksum = "3b241d2e59b74ef9e98d94c78c47623d04c8392abaf82014dfd372a16041128f" dependencies = [ - "blake2b_simd", - "futures", - "libipld", "sha2 0.10.8", ] @@ -10936,7 +10927,7 @@ dependencies = [ "thiserror", "tokio", "tokio-stream", - "unsigned-varint", + "unsigned-varint 0.7.2", "void", "wasm-timer", "zeroize", @@ -11710,6 +11701,18 @@ dependencies = [ "syn 2.0.61", ] +[[package]] +name = "serde_ipld_dagcbor" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ded35fbe4ab8fdec1f1d14b4daff2206b1eada4d6e708cb451d464d2d965f493" +dependencies = [ + "cbor4ii", + "ipld-core", + "scopeguard", + "serde", +] + [[package]] name = "serde_json" version = "1.0.117" @@ -14106,6 +14109,12 @@ dependencies = [ "tokio-util", ] +[[package]] +name = "unsigned-varint" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eb066959b24b5196ae73cb057f45598450d2c5f71460e98c49b738086eff9c06" + [[package]] name = "untrusted" version = "0.7.1" diff --git a/Cargo.toml b/Cargo.toml index a10a83f1e..8954c8692 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -52,6 +52,14 @@ tracing-subscriber = { version = "0.3.18" } rs-car = "0.4.1" tokio = "1.37.0" quick-protobuf = "0.8.1" +ipfs-unixfs = "0.2.0" +serde_ipld_dagcbor = "0.6.1" +ipld-core = "0.4.1" +rand = "0.8.5" +sha2 = "0.10.8" +digest = "0.10.7" +fallible-iterator = "0.3.0" +rs_merkle = "1.4.2" # Local polka-storage-runtime = { path = "runtime" } diff --git a/storage/file-storage/Cargo.toml b/storage/file-storage/Cargo.toml index 5e57fa26b..a88173b07 100644 --- a/storage/file-storage/Cargo.toml +++ b/storage/file-storage/Cargo.toml @@ -10,11 +10,19 @@ publish = false [dependencies] -rs-car = { workspace = true } # TODO(@jmg-duarte,15/05/2024): reduce the required features tokio = { workspace = true, features = ["full"] } clap = { workspace = true, features = ["derive"] } +serde = { workspace = true, features = ["derive"] } +serde_ipld_dagcbor = { workspace = true } +ipld-core = { workspace = true, features = ["serde"] } +thiserror = { workspace = true } +rand = { workspace = true } +sha2 = { workspace = true } +digest = { workspace = true } quick-protobuf = { workspace = true } +fallible-iterator = { workspace = true } +rs_merkle = { workspace = true } [lints] workspace = true diff --git a/storage/file-storage/src/car/car_v1.rs b/storage/file-storage/src/car/car_v1.rs new file mode 100644 index 000000000..790cc4333 --- /dev/null +++ b/storage/file-storage/src/car/car_v1.rs @@ -0,0 +1,98 @@ +use ipld_core::{cid::Cid, codec::Codec}; +use serde::{Deserialize, Serialize}; +use serde_ipld_dagcbor::{codec::DagCborCodec, error::CodecError}; + +// Codes taken from https://github.com/multiformats/multicodec/blob/c954a787dc6a17d099653e5f90d26fbd177d2074/table.csv +const SHA2_256_CODE: u64 = 0x12; +// Raw code used because the JS CAR implementation shows an example with it +// https://github.com/ipld/js-car +const RAW_CODE: u64 = 0x55; + +pub const CAR_V1_VERSION: u8 = 1; + +pub type UnixFsBlock = (Cid, Vec); + +#[derive(Debug, Deserialize, Serialize, PartialEq, Eq)] +struct CarV1Header { + pub header: u8, + pub roots: Vec, +} + +impl CarV1Header { + fn new(roots: Vec) -> Self { + Self { + header: CAR_V1_VERSION, + roots, + } + } +} + +impl TryFrom<&[u8]> for CarV1Header { + type Error = CodecError; + + fn try_from(value: &[u8]) -> Result { + DagCborCodec::decode_from_slice(value) + } +} + +impl TryFrom<&CarV1Header> for Vec { + type Error = CodecError; + + fn try_from(value: &CarV1Header) -> Result { + DagCborCodec::encode_to_vec(value) + } +} + +struct CarV1 { + header: CarV1Header, + blocks: Vec, +} + +#[cfg(test)] +mod tests { + use std::fs::read; + + use digest::Digest; + use ipld_core::{ + cid::{multihash::Multihash, Cid}, + codec::Codec, + }; + use rand::random; + use serde_ipld_dagcbor::codec::DagCborCodec; + use sha2::Sha256; + + use crate::car::car_v1::{RAW_CODE, SHA2_256_CODE}; + + use super::CarV1Header; + + fn generate_random_multihash() -> Multihash<64> + where + H: Digest, + { + let bytes = random::<[u8; 32]>(); + let mut hasher = H::new(); + hasher.update(&bytes); + let hashed_bytes = hasher.finalize(); + Multihash::wrap(H_CODE, &hashed_bytes).unwrap() + } + + #[test] + fn roundtrip_cid_v0() { + let multihash = generate_random_multihash::(); + let cid = Cid::new_v0(multihash).unwrap(); + let header = CarV1Header::new(vec![cid]); + let encoded_header = DagCborCodec::encode_to_vec(&header).unwrap(); + let decoded_header: CarV1Header = DagCborCodec::decode_from_slice(&encoded_header).unwrap(); + assert_eq!(header, decoded_header); + } + + #[test] + fn roundtrip_cid_v1_sha2_256() { + let multihash = generate_random_multihash::(); + let cid = Cid::new_v1(RAW_CODE, multihash); + let header = CarV1Header::new(vec![cid]); + let encoded_header = DagCborCodec::encode_to_vec(&header).unwrap(); + let decoded_header: CarV1Header = DagCborCodec::decode_from_slice(&encoded_header).unwrap(); + assert_eq!(header, decoded_header); + } +} diff --git a/storage/file-storage/src/car/chunker.rs b/storage/file-storage/src/car/chunker.rs new file mode 100644 index 000000000..176f07164 --- /dev/null +++ b/storage/file-storage/src/car/chunker.rs @@ -0,0 +1,122 @@ +use std::io::{self, BufRead}; + +use fallible_iterator::FallibleIterator; + +struct FixedChunker { + reader: R, + buffer: Option>, +} + +impl FixedChunker { + pub fn new(size: usize, reader: R) -> Self { + Self { + reader, + buffer: Some(vec![0; size]), + } + } +} + +impl FallibleIterator for FixedChunker { + type Item = (Vec, usize); + type Error = io::Error; + + fn next(&mut self) -> Result, Self::Error> { + if let Some(inner) = &mut self.buffer { + let n_read = self.reader.read(inner)?; + + match n_read { + 0 => return Ok(None), + n if n == inner.len() => return Ok(Some((inner.to_vec(), n_read))), + _ => { + if let Some(inner) = &mut self.buffer { + inner.truncate(n_read); + } + return Ok(self.buffer.take().map(|v| (v, n_read))); + } + } + } + Ok(None) + } +} + +#[cfg(test)] +mod tests { + use std::{fs::File, io::BufReader}; + + use fallible_iterator::FallibleIterator; + + use super::FixedChunker; + + #[test] + fn read_1024() { + const CHUNK_SIZE: usize = 1024; + const TEST_PATH: &str = "tests/fixtures/lorem_1024.txt"; + let read_file = std::fs::read(TEST_PATH).unwrap(); + assert_eq!(read_file.len(), CHUNK_SIZE); // sanity check + + let file = File::open(TEST_PATH).unwrap(); + let buffered_file = BufReader::new(file); + let mut chunker = FixedChunker::new(CHUNK_SIZE, buffered_file); + + let (chunk, size) = chunker.next().unwrap().unwrap(); + assert_eq!(size, CHUNK_SIZE); + assert_eq!(read_file, chunk); + + let chunk = chunker.next().unwrap(); + assert_eq!(chunk, None); + } + + #[test] + fn read_4096() { + const CHUNK_SIZE: usize = 1024; + const TEST_PATH: &str = "tests/fixtures/lorem_4096_dup.txt"; + let read_file = std::fs::read(TEST_PATH).unwrap(); + assert_eq!(read_file.len(), CHUNK_SIZE * 4); // sanity check + + let file = File::open(TEST_PATH).unwrap(); + let buffered_file = BufReader::new(file); + let mut chunker = FixedChunker::new(CHUNK_SIZE, buffered_file); + + for idx in 0..4 { + let (chunk, size) = chunker.next().unwrap().unwrap(); + assert_eq!(size, CHUNK_SIZE); + assert_eq!( + read_file[(CHUNK_SIZE * idx)..(CHUNK_SIZE * (idx + 1))], + chunk + ); + } + + let chunk = chunker.next().unwrap(); + assert_eq!(chunk, None); + } + + #[test] + fn read_7564() { + const FILE_SIZE: usize = 7564; + const CHUNK_SIZE: usize = 1024; + const TEST_PATH: &str = "tests/fixtures/lorem.txt"; + let read_file = std::fs::read(TEST_PATH).unwrap(); + assert_eq!(read_file.len(), FILE_SIZE); // sanity check + + let file = File::open(TEST_PATH).unwrap(); + let buffered_file = BufReader::new(file); + let mut chunker = FixedChunker::new(CHUNK_SIZE, buffered_file); + + let expected_n_chunks = FILE_SIZE / CHUNK_SIZE; // this is actually 7 + for idx in 0..expected_n_chunks { + let (chunk, size) = chunker.next().unwrap().unwrap(); + assert_eq!(size, CHUNK_SIZE); + assert_eq!( + read_file[(CHUNK_SIZE * idx)..(CHUNK_SIZE * (idx + 1))], + chunk + ); + } + + let (chunk, size) = chunker.next().unwrap().unwrap(); + assert_eq!(size, FILE_SIZE - (expected_n_chunks * CHUNK_SIZE)); + assert_eq!(read_file[7 * CHUNK_SIZE..], chunk); + + let chunk = chunker.next().unwrap(); + assert_eq!(chunk, None); + } +} diff --git a/storage/file-storage/src/car/mod.rs b/storage/file-storage/src/car/mod.rs new file mode 100644 index 000000000..f7890c168 --- /dev/null +++ b/storage/file-storage/src/car/mod.rs @@ -0,0 +1,2 @@ +mod car_v1; +mod chunker; diff --git a/storage/file-storage/src/lib.rs b/storage/file-storage/src/lib.rs index 021b6614a..0fd896290 100644 --- a/storage/file-storage/src/lib.rs +++ b/storage/file-storage/src/lib.rs @@ -1 +1 @@ -mod unixfs; +mod car; diff --git a/storage/file-storage/src/unixfs/mod.rs b/storage/file-storage/src/unixfs/mod.rs deleted file mode 100644 index b75eb4ae0..000000000 --- a/storage/file-storage/src/unixfs/mod.rs +++ /dev/null @@ -1 +0,0 @@ -pub mod unixfs_v1; diff --git a/storage/file-storage/src/unixfs/unixfs_v1.proto b/storage/file-storage/src/unixfs/unixfs_v1.proto deleted file mode 100644 index 7a94d8f7f..000000000 --- a/storage/file-storage/src/unixfs/unixfs_v1.proto +++ /dev/null @@ -1,34 +0,0 @@ -// UnixFS v1 Protobuf definition -// For more information see: -// https://github.com/ipfs/specs/blob/e4e5754ad4a4bfbb2ebe63f4c27631f573703de0/UNIXFS.md - -syntax = "proto2"; - -message Data { - enum DataType { - Raw = 0; - Directory = 1; - File = 2; - Metadata = 3; - Symlink = 4; - HAMTShard = 5; - } - - required DataType Type = 1; - optional bytes Data = 2; - optional uint64 filesize = 3; - repeated uint64 blocksizes = 4; - optional uint64 hashType = 5; - optional uint64 fanout = 6; - optional uint32 mode = 7; - optional UnixTime mtime = 8; -} - -message Metadata { - optional string MimeType = 1; -} - -message UnixTime { - required int64 Seconds = 1; - optional fixed32 FractionalNanoseconds = 2; -} diff --git a/storage/file-storage/src/unixfs/unixfs_v1.rs b/storage/file-storage/src/unixfs/unixfs_v1.rs deleted file mode 100644 index 76d12ce2b..000000000 --- a/storage/file-storage/src/unixfs/unixfs_v1.rs +++ /dev/null @@ -1,193 +0,0 @@ -// Automatically generated rust module for 'unixfs_v1.proto' file - -#![allow(non_snake_case)] -#![allow(non_upper_case_globals)] -#![allow(non_camel_case_types)] -#![allow(unused_imports)] -#![allow(unknown_lints)] -#![allow(clippy::all)] -#![cfg_attr(rustfmt, rustfmt_skip)] - - -use std::borrow::Cow; -use quick_protobuf::{MessageInfo, MessageRead, MessageWrite, BytesReader, Writer, WriterBackend, Result}; -use quick_protobuf::sizeofs::*; -use super::*; - -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Debug, Default, PartialEq, Clone)] -pub struct Data<'a> { - pub Type: mod_Data::DataType, - pub Data: Option>, - pub filesize: Option, - pub blocksizes: Vec, - pub hashType: Option, - pub fanout: Option, - pub mode: Option, - pub mtime: Option, -} - -impl<'a> MessageRead<'a> for Data<'a> { - fn from_reader(r: &mut BytesReader, bytes: &'a [u8]) -> Result { - let mut msg = Self::default(); - while !r.is_eof() { - match r.next_tag(bytes) { - Ok(8) => msg.Type = r.read_enum(bytes)?, - Ok(18) => msg.Data = Some(r.read_bytes(bytes).map(Cow::Borrowed)?), - Ok(24) => msg.filesize = Some(r.read_uint64(bytes)?), - Ok(32) => msg.blocksizes.push(r.read_uint64(bytes)?), - Ok(40) => msg.hashType = Some(r.read_uint64(bytes)?), - Ok(48) => msg.fanout = Some(r.read_uint64(bytes)?), - Ok(56) => msg.mode = Some(r.read_uint32(bytes)?), - Ok(66) => msg.mtime = Some(r.read_message::(bytes)?), - Ok(t) => { r.read_unknown(bytes, t)?; } - Err(e) => return Err(e), - } - } - Ok(msg) - } -} - -impl<'a> MessageWrite for Data<'a> { - fn get_size(&self) -> usize { - 0 - + 1 + sizeof_varint(*(&self.Type) as u64) - + self.Data.as_ref().map_or(0, |m| 1 + sizeof_len((m).len())) - + self.filesize.as_ref().map_or(0, |m| 1 + sizeof_varint(*(m) as u64)) - + self.blocksizes.iter().map(|s| 1 + sizeof_varint(*(s) as u64)).sum::() - + self.hashType.as_ref().map_or(0, |m| 1 + sizeof_varint(*(m) as u64)) - + self.fanout.as_ref().map_or(0, |m| 1 + sizeof_varint(*(m) as u64)) - + self.mode.as_ref().map_or(0, |m| 1 + sizeof_varint(*(m) as u64)) - + self.mtime.as_ref().map_or(0, |m| 1 + sizeof_len((m).get_size())) - } - - fn write_message(&self, w: &mut Writer) -> Result<()> { - w.write_with_tag(8, |w| w.write_enum(*&self.Type as i32))?; - if let Some(ref s) = self.Data { w.write_with_tag(18, |w| w.write_bytes(&**s))?; } - if let Some(ref s) = self.filesize { w.write_with_tag(24, |w| w.write_uint64(*s))?; } - for s in &self.blocksizes { w.write_with_tag(32, |w| w.write_uint64(*s))?; } - if let Some(ref s) = self.hashType { w.write_with_tag(40, |w| w.write_uint64(*s))?; } - if let Some(ref s) = self.fanout { w.write_with_tag(48, |w| w.write_uint64(*s))?; } - if let Some(ref s) = self.mode { w.write_with_tag(56, |w| w.write_uint32(*s))?; } - if let Some(ref s) = self.mtime { w.write_with_tag(66, |w| w.write_message(s))?; } - Ok(()) - } -} - -pub mod mod_Data { - - -#[derive(Debug, PartialEq, Eq, Clone, Copy)] -pub enum DataType { - Raw = 0, - Directory = 1, - File = 2, - Metadata = 3, - Symlink = 4, - HAMTShard = 5, -} - -impl Default for DataType { - fn default() -> Self { - DataType::Raw - } -} - -impl From for DataType { - fn from(i: i32) -> Self { - match i { - 0 => DataType::Raw, - 1 => DataType::Directory, - 2 => DataType::File, - 3 => DataType::Metadata, - 4 => DataType::Symlink, - 5 => DataType::HAMTShard, - _ => Self::default(), - } - } -} - -impl<'a> From<&'a str> for DataType { - fn from(s: &'a str) -> Self { - match s { - "Raw" => DataType::Raw, - "Directory" => DataType::Directory, - "File" => DataType::File, - "Metadata" => DataType::Metadata, - "Symlink" => DataType::Symlink, - "HAMTShard" => DataType::HAMTShard, - _ => Self::default(), - } - } -} - -} - -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Debug, Default, PartialEq, Clone)] -pub struct Metadata<'a> { - pub MimeType: Option>, -} - -impl<'a> MessageRead<'a> for Metadata<'a> { - fn from_reader(r: &mut BytesReader, bytes: &'a [u8]) -> Result { - let mut msg = Self::default(); - while !r.is_eof() { - match r.next_tag(bytes) { - Ok(10) => msg.MimeType = Some(r.read_string(bytes).map(Cow::Borrowed)?), - Ok(t) => { r.read_unknown(bytes, t)?; } - Err(e) => return Err(e), - } - } - Ok(msg) - } -} - -impl<'a> MessageWrite for Metadata<'a> { - fn get_size(&self) -> usize { - 0 - + self.MimeType.as_ref().map_or(0, |m| 1 + sizeof_len((m).len())) - } - - fn write_message(&self, w: &mut Writer) -> Result<()> { - if let Some(ref s) = self.MimeType { w.write_with_tag(10, |w| w.write_string(&**s))?; } - Ok(()) - } -} - -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Debug, Default, PartialEq, Clone)] -pub struct UnixTime { - pub Seconds: i64, - pub FractionalNanoseconds: Option, -} - -impl<'a> MessageRead<'a> for UnixTime { - fn from_reader(r: &mut BytesReader, bytes: &'a [u8]) -> Result { - let mut msg = Self::default(); - while !r.is_eof() { - match r.next_tag(bytes) { - Ok(8) => msg.Seconds = r.read_int64(bytes)?, - Ok(21) => msg.FractionalNanoseconds = Some(r.read_fixed32(bytes)?), - Ok(t) => { r.read_unknown(bytes, t)?; } - Err(e) => return Err(e), - } - } - Ok(msg) - } -} - -impl MessageWrite for UnixTime { - fn get_size(&self) -> usize { - 0 - + 1 + sizeof_varint(*(&self.Seconds) as u64) - + self.FractionalNanoseconds.as_ref().map_or(0, |_| 1 + 4) - } - - fn write_message(&self, w: &mut Writer) -> Result<()> { - w.write_with_tag(8, |w| w.write_int64(*&self.Seconds))?; - if let Some(ref s) = self.FractionalNanoseconds { w.write_with_tag(21, |w| w.write_fixed32(*s))?; } - Ok(()) - } -} - diff --git a/storage/file-storage/tests/fixtures/lorem.txt b/storage/file-storage/tests/fixtures/lorem.txt new file mode 100644 index 000000000..8565ec8ba --- /dev/null +++ b/storage/file-storage/tests/fixtures/lorem.txt @@ -0,0 +1,10 @@ +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Sagittis orci a scelerisque purus semper. Euismod nisi porta lorem mollis aliquam. Nisi vitae suscipit tellus mauris a diam. Purus ut faucibus pulvinar elementum integer enim. Massa sed elementum tempus egestas sed sed. Sagittis id consectetur purus ut faucibus pulvinar elementum integer enim. Eget nunc scelerisque viverra mauris in aliquam sem fringilla ut. Malesuada fames ac turpis egestas. Mi proin sed libero enim sed faucibus turpis in. +Pretium nibh ipsum consequat nisl vel pretium. Viverra suspendisse potenti nullam ac tortor vitae. Aliquet eget sit amet tellus cras adipiscing enim eu. Rhoncus mattis rhoncus urna neque. Est lorem ipsum dolor sit amet consectetur. Nisi quis eleifend quam adipiscing vitae proin sagittis. Risus sed vulputate odio ut. Ultrices eros in cursus turpis massa tincidunt dui ut. Condimentum vitae sapien pellentesque habitant morbi tristique senectus. Maecenas ultricies mi eget mauris pharetra et ultrices neque ornare. Eu mi bibendum neque egestas. Etiam erat velit scelerisque in dictum non consectetur a. Nulla facilisi cras fermentum odio eu feugiat pretium nibh ipsum. Sagittis purus sit amet volutpat consequat mauris nunc. Turpis egestas pretium aenean pharetra magna ac placerat vestibulum. Nibh tellus molestie nunc non blandit massa enim. Ut tortor pretium viverra suspendisse potenti. +Facilisis magna etiam tempor orci eu lobortis elementum nibh. Volutpat sed cras ornare arcu dui vivamus arcu. Cursus risus at ultrices mi. Nunc eget lorem dolor sed viverra. Sit amet nisl suscipit adipiscing bibendum est ultricies integer. Id nibh tortor id aliquet lectus proin nibh. Adipiscing elit pellentesque habitant morbi tristique senectus et. Enim nec dui nunc mattis enim ut tellus elementum. Dui nunc mattis enim ut tellus. Adipiscing vitae proin sagittis nisl rhoncus mattis rhoncus urna neque. Molestie a iaculis at erat pellentesque adipiscing commodo. +Fames ac turpis egestas sed tempus urna et pharetra. Sagittis purus sit amet volutpat. Consectetur adipiscing elit duis tristique. Sit amet nisl purus in mollis nunc sed id semper. Erat pellentesque adipiscing commodo elit at imperdiet dui accumsan sit. Aliquam vestibulum morbi blandit cursus risus at ultrices mi tempus. Pellentesque dignissim enim sit amet venenatis urna cursus. Amet justo donec enim diam vulputate. Ut placerat orci nulla pellentesque dignissim. Praesent semper feugiat nibh sed pulvinar proin gravida hendrerit. Auctor neque vitae tempus quam pellentesque nec nam aliquam sem. Lectus urna duis convallis convallis tellus id interdum velit laoreet. Hendrerit dolor magna eget est lorem ipsum dolor sit. Ut sem viverra aliquet eget sit amet tellus cras. Cursus metus aliquam eleifend mi in nulla posuere sollicitudin. Dolor purus non enim praesent elementum facilisis. Dignissim sodales ut eu sem integer. Tempor orci eu lobortis elementum nibh tellus molestie nunc non. Ut enim blandit volutpat maecenas volutpat. +Tortor consequat id porta nibh venenatis cras. Sit amet purus gravida quis. Convallis convallis tellus id interdum velit laoreet. Vitae suscipit tellus mauris a diam maecenas. Phasellus egestas tellus rutrum tellus pellentesque eu tincidunt tortor aliquam. Commodo sed egestas egestas fringilla phasellus faucibus scelerisque eleifend. Turpis massa sed elementum tempus egestas sed. Sodales neque sodales ut etiam sit amet. Leo vel fringilla est ullamcorper. Pellentesque pulvinar pellentesque habitant morbi tristique senectus et netus. Dignissim convallis aenean et tortor at risus viverra. Nibh tellus molestie nunc non blandit massa enim nec. Phasellus vestibulum lorem sed risus ultricies tristique nulla aliquet. +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Sagittis orci a scelerisque purus semper. Euismod nisi porta lorem mollis aliquam. Nisi vitae suscipit tellus mauris a diam. Purus ut faucibus pulvinar elementum integer enim. Massa sed elementum tempus egestas sed sed. Sagittis id consectetur purus ut faucibus pulvinar elementum integer enim. Eget nunc scelerisque viverra mauris in aliquam sem fringilla ut. Malesuada fames ac turpis egestas. Mi proin sed libero enim sed faucibus turpis in. +Pretium nibh ipsum consequat nisl vel pretium. Viverra suspendisse potenti nullam ac tortor vitae. Aliquet eget sit amet tellus cras adipiscing enim eu. Rhoncus mattis rhoncus urna neque. Est lorem ipsum dolor sit amet consectetur. Nisi quis eleifend quam adipiscing vitae proin sagittis. Risus sed vulputate odio ut. Ultrices eros in cursus turpis massa tincidunt dui ut. Condimentum vitae sapien pellentesque habitant morbi tristique senectus. Maecenas ultricies mi eget mauris pharetra et ultrices neque ornare. Eu mi bibendum neque egestas. Etiam erat velit scelerisque in dictum non consectetur a. Nulla facilisi cras fermentum odio eu feugiat pretium nibh ipsum. Sagittis purus sit amet volutpat consequat mauris nunc. Turpis egestas pretium aenean pharetra magna ac placerat vestibulum. Nibh tellus molestie nunc non blandit massa enim. Ut tortor pretium viverra suspendisse potenti. +Facilisis magna etiam tempor orci eu lobortis elementum nibh. Volutpat sed cras ornare arcu dui vivamus arcu. Cursus risus at ultrices mi. Nunc eget lorem dolor sed viverra. Sit amet nisl suscipit adipiscing bibendum est ultricies integer. Id nibh tortor id aliquet lectus proin nibh. Adipiscing elit pellentesque habitant morbi tristique senectus et. Enim nec dui nunc mattis enim ut tellus elementum. Dui nunc mattis enim ut tellus. Adipiscing vitae proin sagittis nisl rhoncus mattis rhoncus urna neque. Molestie a iaculis at erat pellentesque adipiscing commodo. +Fames ac turpis egestas sed tempus urna et pharetra. Sagittis purus sit amet volutpat. Consectetur adipiscing elit duis tristique. Sit amet nisl purus in mollis nunc sed id semper. Erat pellentesque adipiscing commodo elit at imperdiet dui accumsan sit. Aliquam vestibulum morbi blandit cursus risus at ultrices mi tempus. Pellentesque dignissim enim sit amet venenatis urna cursus. Amet justo donec enim diam vulputate. Ut placerat orci nulla pellentesque dignissim. Praesent semper feugiat nibh sed pulvinar proin gravida hendrerit. Auctor neque vitae tempus quam pellentesque nec nam aliquam sem. Lectus urna duis convallis convallis tellus id interdum velit laoreet. Hendrerit dolor magna eget est lorem ipsum dolor sit. Ut sem viverra aliquet eget sit amet tellus cras. Cursus metus aliquam eleifend mi in nulla posuere sollicitudin. Dolor purus non enim praesent elementum facilisis. Dignissim sodales ut eu sem integer. Tempor orci eu lobortis elementum nibh tellus molestie nunc non. Ut enim blandit volutpat maecenas volutpat. +Tortor consequat id porta nibh venenatis cras. Sit amet purus gravida quis. Convallis convallis tellus id interdum velit laoreet. Vitae suscipit tellus mauris a diam maecenas. Phasellus egestas tellus rutrum tellus pellentesque eu tincidunt tortor aliquam. Commodo sed egestas egestas fringilla phasellus faucibus scelerisque eleifend. Turpis massa sed elementum tempus egestas sed. Sodales neque sodales ut etiam sit amet. Leo vel fringilla est ullamcorper. Pellentesque pulvinar pellentesque habitant morbi tristique senectus et netus. Dignissim convallis aenean et tortor at risus viverra. Nibh tellus molestie nunc non blandit massa enim nec. Phasellus vestibulum lorem sed risus ultricies tristique nulla aliquet. diff --git a/storage/file-storage/tests/fixtures/lorem_1024.txt b/storage/file-storage/tests/fixtures/lorem_1024.txt new file mode 100644 index 000000000..eb4ec57a2 --- /dev/null +++ b/storage/file-storage/tests/fixtures/lorem_1024.txt @@ -0,0 +1,2 @@ +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Sagittis orci a scelerisque purus semper. Euismod nisi porta lorem mollis aliquam. Nisi vitae suscipit tellus mauris a diam. Purus ut faucibus pulvinar elementum integer enim. Massa sed elementum tempus egestas sed sed. Sagittis id consectetur purus ut faucibus pulvinar elementum integer enim. Eget nunc scelerisque viverra mauris in aliquam sem fringilla ut. Malesuada fames ac turpis egestas. Mi proin sed libero enim sed faucibus turpis in. +Pretium nibh ipsum consequat nisl vel pretium. Viverra suspendisse potenti nullam ac tortor vitae. Aliquet eget sit amet tellus cras adipiscing enim eu. Rhoncus mattis rhoncus urna neque. Est lorem ipsum dolor sit amet consectetur. Nisi quis eleifend quam adipiscing vitae proin sagittis. Risus sed vulputate odio ut. Ultrices eros in cursus turpis massa tincidunt dui ut. Condimentum vitae sapien pellentesque habitant morbi tristique senectus. Maecenas \ No newline at end of file diff --git a/storage/file-storage/tests/fixtures/lorem_4096_dup.txt b/storage/file-storage/tests/fixtures/lorem_4096_dup.txt new file mode 100644 index 000000000..cc2bf9e95 --- /dev/null +++ b/storage/file-storage/tests/fixtures/lorem_4096_dup.txt @@ -0,0 +1,5 @@ +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Sagittis orci a scelerisque purus semper. Euismod nisi porta lorem mollis aliquam. Nisi vitae suscipit tellus mauris a diam. Purus ut faucibus pulvinar elementum integer enim. Massa sed elementum tempus egestas sed sed. Sagittis id consectetur purus ut faucibus pulvinar elementum integer enim. Eget nunc scelerisque viverra mauris in aliquam sem fringilla ut. Malesuada fames ac turpis egestas. Mi proin sed libero enim sed faucibus turpis in. +Pretium nibh ipsum consequat nisl vel pretium. Viverra suspendisse potenti nullam ac tortor vitae. Aliquet eget sit amet tellus cras adipiscing enim eu. Rhoncus mattis rhoncus urna neque. Est lorem ipsum dolor sit amet consectetur. Nisi quis eleifend quam adipiscing vitae proin sagittis. Risus sed vulputate odio ut. Ultrices eros in cursus turpis massa tincidunt dui ut. Condimentum vitae sapien pellentesque habitant morbi tristique senectus. Maecenas Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Sagittis orci a scelerisque purus semper. Euismod nisi porta lorem mollis aliquam. Nisi vitae suscipit tellus mauris a diam. Purus ut faucibus pulvinar elementum integer enim. Massa sed elementum tempus egestas sed sed. Sagittis id consectetur purus ut faucibus pulvinar elementum integer enim. Eget nunc scelerisque viverra mauris in aliquam sem fringilla ut. Malesuada fames ac turpis egestas. Mi proin sed libero enim sed faucibus turpis in. +Pretium nibh ipsum consequat nisl vel pretium. Viverra suspendisse potenti nullam ac tortor vitae. Aliquet eget sit amet tellus cras adipiscing enim eu. Rhoncus mattis rhoncus urna neque. Est lorem ipsum dolor sit amet consectetur. Nisi quis eleifend quam adipiscing vitae proin sagittis. Risus sed vulputate odio ut. Ultrices eros in cursus turpis massa tincidunt dui ut. Condimentum vitae sapien pellentesque habitant morbi tristique senectus. Maecenas Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Sagittis orci a scelerisque purus semper. Euismod nisi porta lorem mollis aliquam. Nisi vitae suscipit tellus mauris a diam. Purus ut faucibus pulvinar elementum integer enim. Massa sed elementum tempus egestas sed sed. Sagittis id consectetur purus ut faucibus pulvinar elementum integer enim. Eget nunc scelerisque viverra mauris in aliquam sem fringilla ut. Malesuada fames ac turpis egestas. Mi proin sed libero enim sed faucibus turpis in. +Pretium nibh ipsum consequat nisl vel pretium. Viverra suspendisse potenti nullam ac tortor vitae. Aliquet eget sit amet tellus cras adipiscing enim eu. Rhoncus mattis rhoncus urna neque. Est lorem ipsum dolor sit amet consectetur. Nisi quis eleifend quam adipiscing vitae proin sagittis. Risus sed vulputate odio ut. Ultrices eros in cursus turpis massa tincidunt dui ut. Condimentum vitae sapien pellentesque habitant morbi tristique senectus. Maecenas Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Sagittis orci a scelerisque purus semper. Euismod nisi porta lorem mollis aliquam. Nisi vitae suscipit tellus mauris a diam. Purus ut faucibus pulvinar elementum integer enim. Massa sed elementum tempus egestas sed sed. Sagittis id consectetur purus ut faucibus pulvinar elementum integer enim. Eget nunc scelerisque viverra mauris in aliquam sem fringilla ut. Malesuada fames ac turpis egestas. Mi proin sed libero enim sed faucibus turpis in. +Pretium nibh ipsum consequat nisl vel pretium. Viverra suspendisse potenti nullam ac tortor vitae. Aliquet eget sit amet tellus cras adipiscing enim eu. Rhoncus mattis rhoncus urna neque. Est lorem ipsum dolor sit amet consectetur. Nisi quis eleifend quam adipiscing vitae proin sagittis. Risus sed vulputate odio ut. Ultrices eros in cursus turpis massa tincidunt dui ut. Condimentum vitae sapien pellentesque habitant morbi tristique senectus. Maecenas \ No newline at end of file From 11667f1780b33a757922ace2ced91467b1795886 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jose=CC=81=20Duarte?= Date: Sun, 19 May 2024 12:35:00 +0100 Subject: [PATCH 05/63] feat(file-storage): implement CARv1 async reader and writer --- storage/file-storage/src/car/async_car_v1.rs | 374 +++++++++++++++++++ storage/file-storage/src/car/mod.rs | 1 + 2 files changed, 375 insertions(+) create mode 100644 storage/file-storage/src/car/async_car_v1.rs diff --git a/storage/file-storage/src/car/async_car_v1.rs b/storage/file-storage/src/car/async_car_v1.rs new file mode 100644 index 000000000..1e4b71b4d --- /dev/null +++ b/storage/file-storage/src/car/async_car_v1.rs @@ -0,0 +1,374 @@ +use std::io::{Cursor, Seek}; + +use byteorder::ReadBytesExt; +use ipld_core::{ + cid::{multihash::Multihash, Cid}, + codec::Codec, +}; + +use integer_encoding::{VarIntAsyncReader, VarIntAsyncWriter, VarIntReader}; +use serde::{Deserialize, Serialize}; +use serde_ipld_dagcbor::codec::DagCborCodec; +use thiserror::Error; +use tokio::io::{AsyncRead, AsyncReadExt, AsyncWrite, AsyncWriteExt}; + +#[derive(Debug, Error)] +pub enum Error { + #[error(transparent)] + CodecError(#[from] serde_ipld_dagcbor::error::CodecError), + #[error(transparent)] + IoError(#[from] tokio::io::Error), + #[error(transparent)] + CidError(#[from] ipld_core::cid::Error), + #[error(transparent)] + MultihashError(#[from] ipld_core::cid::multihash::Error), +} + +/// Low-level CARv1 header. +#[derive(Debug, Serialize, Deserialize)] +pub struct Header { + version: u8, + roots: Vec, +} + +impl Header { + /// Construct a new CARv1 header. + /// + /// The version will always be 1. + pub fn new(roots: Vec) -> Self { + Self { version: 1, roots } + } +} + +/// Write a CARv1 header to the provider writer. +pub(crate) async fn write_header(writer: &mut W, header: &Header) -> Result<(), Error> +where + W: AsyncWrite + Unpin, +{ + let encoded_header = DagCborCodec::encode_to_vec(header)?; + writer.write_varint_async(encoded_header.len()).await?; + writer.write_all(&encoded_header).await?; + Ok(()) +} + +/// Write a [`Cid`] and block to the given writer. +/// +/// This is a low-level function to be used in the implementation of CAR writers. +/// The function takes a `cid_buffer` to avoid allocating a new buffer every time it is called. +pub(crate) async fn write_block( + writer: &mut W, + cid: &Cid, + block: Block, + mut cid_buffer: &mut Vec, +) -> Result<(), Error> +where + W: AsyncWrite + Unpin, + Block: AsRef<[u8]>, +{ + let written = cid.write_bytes(&mut cid_buffer)?; + debug_assert!(written == cid.encoded_len(), "failed to write the full Cid"); + let data = block.as_ref(); + let len = written + data.len(); + + writer.write_varint_async(len).await?; + // NOTE(@jmg-duarte,17/05/2024): this .as_mut() could be "avoided" if O: AsRef<[u8]> + // though we're achieving the same result regardless... + writer.write_all(&cid_buffer[..written]).await?; + writer.write_all(&data).await?; + Ok(()) +} + +fn read_cid_v1(cursor: &mut Cursor) -> Result +where + B: AsRef<[u8]>, +{ + let cid_version: u64 = cursor.read_varint()?; + debug_assert_eq!(cid_version, 1); + let codec_code: u64 = cursor.read_varint()?; + + let hash_function_code: u64 = cursor.read_varint()?; + let hash_digest_size: usize = cursor.read_varint()?; + + let cursor_position = cursor.position() as usize; + let hash_digest_slice = + &cursor.get_ref().as_ref()[cursor_position..(cursor_position + hash_digest_size)]; + + // At this point, the cursor holds an allocated buffer + // Reading into a new buffer would require the new buffer to be allocated + // Taking the slice directly from the inner buffer and setting the position avoids that allocation + let multihash = Multihash::wrap(hash_function_code, hash_digest_slice)?; + cursor.set_position((cursor_position + hash_digest_size) as u64); + + Ok(Cid::new_v1(codec_code, multihash)) +} + +fn read_cid(cursor: &mut Cursor) -> Result +where + B: AsRef<[u8]>, +{ + // Attempt to read it as a CIDv0 first + let cid_v0_hash_code = cursor.read_u8()? as u64; + let cid_v0_hash_length = cursor.read_u8()? as usize; + + if cid_v0_hash_code == 0x12 && cid_v0_hash_length == 0x20 { + let cursor_position = cursor.position() as usize; + let multihash = Multihash::wrap( + cid_v0_hash_code, + &cursor.get_ref().as_ref()[cursor_position..(cursor_position + cid_v0_hash_length)], + )?; + return Ok(Cid::new_v0(multihash)?); + } + + // Couldn't read a CIDv0, means it is V1 + // rewind to regain the two bytes we read + cursor.rewind()?; + read_cid_v1(cursor) +} + +/// Low-level CARv1 reader. +pub struct Reader { + reader: R, +} + +impl Reader { + fn new(reader: R) -> Self { + Self { reader } + } +} + +impl Reader +where + R: AsyncRead + Unpin, +{ + /// Read an [`Header`]. + async fn read_header(&mut self) -> Result { + let header_length: usize = self.reader.read_varint_async().await?; + let mut header_buffer = Vec::with_capacity(header_length); + self.reader.read_buf(&mut header_buffer).await?; + let header: Header = DagCborCodec::decode_from_slice(&header_buffer)?; + debug_assert!(header.version == 1, "header version is not 1"); + debug_assert!(!header.roots.is_empty(), "header does not have roots"); + Ok(header) + } + + /// Reads a data block, composed of a [`Cid`] and the remaining data. + /// + /// The remaining data is returned AS IS, callers should use the coded + /// described in the returned [`Cid`] to parse it. + /// + /// A block is composed of a CID (either version 0 or 1) and data. + /// ```text + /// | CID | Data block | + /// CIDv0 | hash function code (byte 0x12) | digest size (byte 0x20) | digest | ********** | + /// CIDv1 | hash function code (varint) | digest size (varint) | digest | ********** | + /// ``` + async fn read_block(&mut self) -> Result<(Cid, Vec), Error> { + let full_block_length: usize = self.reader.read_varint_async().await?; + let mut full_block_buffer = Vec::with_capacity(full_block_length); + // Read the full block to save on later allocations + self.reader.read_buf(&mut full_block_buffer).await?; + + let mut full_block_cursor = Cursor::new(full_block_buffer); + let cid = read_cid(&mut full_block_cursor)?; + + let data_start_position = full_block_cursor.position() as usize; + let mut full_block_buffer = full_block_cursor.into_inner(); + + Ok((cid, full_block_buffer.split_off(data_start_position))) + } +} + +/// Low-level CARv1 writer. +pub struct Writer { + writer: W, + was_header_written: bool, + /// Avoids allocating a new buffer each time we write a [`Cid`]. + cid_buffer: Vec, +} + +impl Writer { + /// Construct a new CARv1 writer. + /// + /// Takes a writer into which the data will be written. + pub fn new(writer: W) -> Self { + Self { + writer, + was_header_written: false, + cid_buffer: Vec::new(), + } + } +} + +impl Writer +where + W: AsyncWrite + Unpin, +{ + /// Write a CARv1 header. + /// + /// * If the header has already been written, this is a no-op. + pub async fn write_header(&mut self, header: &Header) -> Result<(), Error> { + if !self.was_header_written { + write_header(&mut self.writer, header).await?; + self.was_header_written = true; + } + Ok(()) + } + + /// Write a [`Cid`] and the respective data block. + pub async fn write_block(&mut self, cid: &Cid, data: &D) -> Result<(), Error> + where + D: AsRef<[u8]>, + { + write_block(&mut self.writer, cid, data, &mut self.cid_buffer).await + } + + /// Flushes and returns the inner writer. + pub async fn finish(mut self) -> Result { + self.writer.flush().await?; + Ok(self.writer) + } +} + +#[cfg(test)] +mod tests { + use std::{io::Cursor, path::Path}; + + use ipld_core::cid::{multihash::Multihash, Cid, Version}; + use sha2::Sha256; + use tokio::{ + fs::File, + io::{BufReader, BufWriter}, + }; + + use crate::{ + car_v1::{Header, Reader}, + generate_multihash, + }; + + use super::Writer; + + const RAW_CODEC: u64 = 0x55; + + impl Writer>> { + fn test_writer() -> Self { + let buffer = Vec::new(); + let buf_writer = BufWriter::new(buffer); + Writer::new(buf_writer) + } + } + + async fn file_multihash

(path: P) -> Multihash<64> + where + P: AsRef, + { + let file_contents = tokio::fs::read(path).await.unwrap(); + generate_multihash::(&file_contents) + } + + #[test] + fn read_cid_v0_roundtrip() { + let contents = std::fs::read("tests/fixtures/text/lorem.txt").unwrap(); + let contents_multihash = generate_multihash::(&contents); + let contents_cid = Cid::new_v0(contents_multihash).unwrap(); + let encoded_cid = contents_cid.to_bytes(); + let mut cursor = Cursor::new(encoded_cid); + + let cid = super::read_cid(&mut cursor).unwrap(); + assert_eq!(cid.version(), Version::V0); + assert_eq!(cid.hash(), &contents_multihash); + } + + #[test] + fn read_cid_v1_roundtrip() { + let contents = std::fs::read("tests/fixtures/text/lorem.txt").unwrap(); + let contents_multihash = generate_multihash::(&contents); + let contents_cid = Cid::new_v1(RAW_CODEC, contents_multihash); + let encoded_cid = contents_cid.to_bytes(); + let mut cursor = Cursor::new(encoded_cid); + + let cid = super::read_cid_v1(&mut cursor).unwrap(); + assert_eq!(cid.version(), Version::V1); + assert_eq!(cid.hash(), &contents_multihash); + } + + #[tokio::test] + async fn header_reader() { + let contents_multihash = file_multihash("tests/fixtures/text/lorem.txt").await; + let contents_cid = Cid::new_v1(RAW_CODEC, contents_multihash); + + let file = File::open("tests/fixtures/car_v1/lorem_header.car") + .await + .unwrap(); + let reader = BufReader::new(file); + let mut reader = Reader::new(reader); + let header = reader.read_header().await.unwrap(); + + assert_eq!(header.version, 1); + assert_eq!(header.roots.len(), 1); + assert_eq!(header.roots[0], contents_cid); + } + + #[tokio::test] + async fn full_reader() { + let contents = tokio::fs::read("tests/fixtures/text/lorem.txt") + .await + .unwrap(); + let contents_multihash = generate_multihash::(&contents); + let contents_cid = Cid::new_v1(RAW_CODEC, contents_multihash); + + let file = File::open("tests/fixtures/car_v1/lorem.car").await.unwrap(); + let reader = BufReader::new(file); + let mut reader = Reader::new(reader); + let header = reader.read_header().await.unwrap(); + + assert_eq!(header.version, 1); + assert_eq!(header.roots.len(), 1); + assert_eq!(header.roots[0], contents_cid); + + let (cid, block) = reader.read_block().await.unwrap(); + assert_eq!(cid, contents_cid); + assert_eq!(block, contents); + } + + #[tokio::test] + async fn header_writer() { + let contents_multihash = file_multihash("tests/fixtures/text/lorem.txt").await; + let root_cid = Cid::new_v1(RAW_CODEC, contents_multihash); + + let mut writer = Writer::test_writer(); + writer + .write_header(&Header::new(vec![root_cid])) + .await + .unwrap(); + let buf_writer = writer.finish().await.unwrap(); + + let expected_header = tokio::fs::read("tests/fixtures/car_v1/lorem_header.car") + .await + .unwrap(); + + assert_eq!(&expected_header, buf_writer.get_ref()); + } + + #[tokio::test] + async fn full_writer() { + let file_contents = tokio::fs::read("tests/fixtures/text/lorem.txt") + .await + .unwrap(); + let contents_multihash = generate_multihash::(&file_contents); + let root_cid = Cid::new_v1(RAW_CODEC, contents_multihash); + + let mut writer = Writer::test_writer(); + writer + .write_header(&Header::new(vec![root_cid])) + .await + .unwrap(); + // There's only one block + writer.write_block(&root_cid, &file_contents).await.unwrap(); + let buf_writer = writer.finish().await.unwrap(); + + let expected_header = tokio::fs::read("tests/fixtures/car_v1/lorem.car") + .await + .unwrap(); + assert_eq!(&expected_header, buf_writer.get_ref()); + } +} diff --git a/storage/file-storage/src/car/mod.rs b/storage/file-storage/src/car/mod.rs index f7890c168..fa2f4ed97 100644 --- a/storage/file-storage/src/car/mod.rs +++ b/storage/file-storage/src/car/mod.rs @@ -1,2 +1,3 @@ +mod async_car_v1; mod car_v1; mod chunker; From 6e4f48675fe8a6477a60477b0e4cf29496c70f06 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jose=CC=81=20Duarte?= Date: Mon, 20 May 2024 17:38:26 +0100 Subject: [PATCH 06/63] feat(file-storage): CARv2 reader & writer and CARv1 fixes some CARv1 fixes depended on the CARv2, others were found during development, since v2 depends on v1, it's hard to keep them decoupled --- Cargo.lock | 16 +- Cargo.toml | 6 +- storage/file-storage/Cargo.toml | 26 +- storage/file-storage/src/car/async_car_v1.rs | 374 ------------------ storage/file-storage/src/car/car_v1.rs | 98 ----- storage/file-storage/src/car/mod.rs | 33 +- storage/file-storage/src/car/v1/mod.rs | 43 ++ storage/file-storage/src/car/v1/reader.rs | 237 +++++++++++ storage/file-storage/src/car/v1/writer.rs | 169 ++++++++ storage/file-storage/src/car/v2/index.rs | 271 +++++++++++++ storage/file-storage/src/car/v2/mod.rs | 215 ++++++++++ storage/file-storage/src/car/v2/reader.rs | 305 ++++++++++++++ .../tests/fixtures/car_v1/lorem.car | Bin 0 -> 7661 bytes .../tests/fixtures/car_v1/lorem_header.car | Bin 0 -> 59 bytes .../tests/fixtures/car_v1/spaceglenda.car | Bin 0 -> 654402 bytes .../tests/fixtures/car_v2/lorem.car | Bin 0 -> 7782 bytes .../tests/fixtures/car_v2/spaceglenda.car | Bin 0 -> 654643 bytes .../tests/fixtures/{ => original}/lorem.txt | 0 .../fixtures/{ => original}/lorem_1024.txt | 0 .../{ => original}/lorem_4096_dup.txt | 0 .../tests/fixtures/original/spaceglenda.jpg | Bin 0 -> 654030 bytes 21 files changed, 1302 insertions(+), 491 deletions(-) delete mode 100644 storage/file-storage/src/car/async_car_v1.rs delete mode 100644 storage/file-storage/src/car/car_v1.rs create mode 100644 storage/file-storage/src/car/v1/mod.rs create mode 100644 storage/file-storage/src/car/v1/reader.rs create mode 100644 storage/file-storage/src/car/v1/writer.rs create mode 100644 storage/file-storage/src/car/v2/index.rs create mode 100644 storage/file-storage/src/car/v2/mod.rs create mode 100644 storage/file-storage/src/car/v2/reader.rs create mode 100644 storage/file-storage/tests/fixtures/car_v1/lorem.car create mode 100644 storage/file-storage/tests/fixtures/car_v1/lorem_header.car create mode 100644 storage/file-storage/tests/fixtures/car_v1/spaceglenda.car create mode 100644 storage/file-storage/tests/fixtures/car_v2/lorem.car create mode 100644 storage/file-storage/tests/fixtures/car_v2/spaceglenda.car rename storage/file-storage/tests/fixtures/{ => original}/lorem.txt (100%) rename storage/file-storage/tests/fixtures/{ => original}/lorem_1024.txt (100%) rename storage/file-storage/tests/fixtures/{ => original}/lorem_4096_dup.txt (100%) create mode 100644 storage/file-storage/tests/fixtures/original/spaceglenda.jpg diff --git a/Cargo.lock b/Cargo.lock index 33684b8d8..c156ec5d1 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3260,9 +3260,11 @@ dependencies = [ name = "file-storage" version = "0.1.0" dependencies = [ + "bitflags 2.5.0", + "byteorder", "clap", "digest 0.10.7", - "fallible-iterator 0.3.0", + "integer-encoding 4.0.0", "ipld-core", "quick-protobuf", "rand 0.8.5", @@ -4414,6 +4416,16 @@ version = "3.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8bb03732005da905c88227371639bf1ad885cc712789c011c31c5fb3ab3ccf02" +[[package]] +name = "integer-encoding" +version = "4.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "924df4f0e24e2e7f9cdd90babb0b96f93b20f3ecfa949ea9e6613756b8c8e1bf" +dependencies = [ + "async-trait", + "tokio", +] + [[package]] name = "integer-sqrt" version = "0.1.5" @@ -13481,7 +13493,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b82ca8f46f95b3ce96081fe3dd89160fdea970c254bb72925255d1b62aae692e" dependencies = [ "byteorder", - "integer-encoding", + "integer-encoding 3.0.4", "log", "ordered-float", "threadpool", diff --git a/Cargo.toml b/Cargo.toml index 8954c8692..4323737e8 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -49,7 +49,6 @@ smallvec = "1.11.0" syn = { version = "2.0.53" } thiserror = { version = "1.0.48" } tracing-subscriber = { version = "0.3.18" } -rs-car = "0.4.1" tokio = "1.37.0" quick-protobuf = "0.8.1" ipfs-unixfs = "0.2.0" @@ -58,8 +57,11 @@ ipld-core = "0.4.1" rand = "0.8.5" sha2 = "0.10.8" digest = "0.10.7" -fallible-iterator = "0.3.0" rs_merkle = "1.4.2" +integer-encoding = { version = "4.0.0" } +byteorder = { version = "1.5.0" } +bitflags = "2.5.0" + # Local polka-storage-runtime = { path = "runtime" } diff --git a/storage/file-storage/Cargo.toml b/storage/file-storage/Cargo.toml index a88173b07..dd5f3280a 100644 --- a/storage/file-storage/Cargo.toml +++ b/storage/file-storage/Cargo.toml @@ -1,28 +1,30 @@ [package] -name = "file-storage" -version = "0.1.0" +authors.workspace = true edition.workspace = true -repository.workspace = true homepage.workspace = true -authors.workspace = true license-file.workspace = true +name = "file-storage" publish = false +repository.workspace = true +version = "0.1.0" [dependencies] # TODO(@jmg-duarte,15/05/2024): reduce the required features -tokio = { workspace = true, features = ["full"] } +byteorder = { workspace = true, features = ["i128"] } clap = { workspace = true, features = ["derive"] } -serde = { workspace = true, features = ["derive"] } -serde_ipld_dagcbor = { workspace = true } -ipld-core = { workspace = true, features = ["serde"] } -thiserror = { workspace = true } -rand = { workspace = true } -sha2 = { workspace = true } digest = { workspace = true } +integer-encoding = { workspace = true, features = ["tokio_async"] } +ipld-core = { workspace = true, features = ["serde"] } quick-protobuf = { workspace = true } -fallible-iterator = { workspace = true } +rand = { workspace = true } rs_merkle = { workspace = true } +serde = { workspace = true, features = ["derive"] } +serde_ipld_dagcbor = { workspace = true } +sha2 = { workspace = true } +thiserror = { workspace = true } +tokio = { workspace = true, features = ["full"] } +bitflags = { workspace = true } [lints] workspace = true diff --git a/storage/file-storage/src/car/async_car_v1.rs b/storage/file-storage/src/car/async_car_v1.rs deleted file mode 100644 index 1e4b71b4d..000000000 --- a/storage/file-storage/src/car/async_car_v1.rs +++ /dev/null @@ -1,374 +0,0 @@ -use std::io::{Cursor, Seek}; - -use byteorder::ReadBytesExt; -use ipld_core::{ - cid::{multihash::Multihash, Cid}, - codec::Codec, -}; - -use integer_encoding::{VarIntAsyncReader, VarIntAsyncWriter, VarIntReader}; -use serde::{Deserialize, Serialize}; -use serde_ipld_dagcbor::codec::DagCborCodec; -use thiserror::Error; -use tokio::io::{AsyncRead, AsyncReadExt, AsyncWrite, AsyncWriteExt}; - -#[derive(Debug, Error)] -pub enum Error { - #[error(transparent)] - CodecError(#[from] serde_ipld_dagcbor::error::CodecError), - #[error(transparent)] - IoError(#[from] tokio::io::Error), - #[error(transparent)] - CidError(#[from] ipld_core::cid::Error), - #[error(transparent)] - MultihashError(#[from] ipld_core::cid::multihash::Error), -} - -/// Low-level CARv1 header. -#[derive(Debug, Serialize, Deserialize)] -pub struct Header { - version: u8, - roots: Vec, -} - -impl Header { - /// Construct a new CARv1 header. - /// - /// The version will always be 1. - pub fn new(roots: Vec) -> Self { - Self { version: 1, roots } - } -} - -/// Write a CARv1 header to the provider writer. -pub(crate) async fn write_header(writer: &mut W, header: &Header) -> Result<(), Error> -where - W: AsyncWrite + Unpin, -{ - let encoded_header = DagCborCodec::encode_to_vec(header)?; - writer.write_varint_async(encoded_header.len()).await?; - writer.write_all(&encoded_header).await?; - Ok(()) -} - -/// Write a [`Cid`] and block to the given writer. -/// -/// This is a low-level function to be used in the implementation of CAR writers. -/// The function takes a `cid_buffer` to avoid allocating a new buffer every time it is called. -pub(crate) async fn write_block( - writer: &mut W, - cid: &Cid, - block: Block, - mut cid_buffer: &mut Vec, -) -> Result<(), Error> -where - W: AsyncWrite + Unpin, - Block: AsRef<[u8]>, -{ - let written = cid.write_bytes(&mut cid_buffer)?; - debug_assert!(written == cid.encoded_len(), "failed to write the full Cid"); - let data = block.as_ref(); - let len = written + data.len(); - - writer.write_varint_async(len).await?; - // NOTE(@jmg-duarte,17/05/2024): this .as_mut() could be "avoided" if O: AsRef<[u8]> - // though we're achieving the same result regardless... - writer.write_all(&cid_buffer[..written]).await?; - writer.write_all(&data).await?; - Ok(()) -} - -fn read_cid_v1(cursor: &mut Cursor) -> Result -where - B: AsRef<[u8]>, -{ - let cid_version: u64 = cursor.read_varint()?; - debug_assert_eq!(cid_version, 1); - let codec_code: u64 = cursor.read_varint()?; - - let hash_function_code: u64 = cursor.read_varint()?; - let hash_digest_size: usize = cursor.read_varint()?; - - let cursor_position = cursor.position() as usize; - let hash_digest_slice = - &cursor.get_ref().as_ref()[cursor_position..(cursor_position + hash_digest_size)]; - - // At this point, the cursor holds an allocated buffer - // Reading into a new buffer would require the new buffer to be allocated - // Taking the slice directly from the inner buffer and setting the position avoids that allocation - let multihash = Multihash::wrap(hash_function_code, hash_digest_slice)?; - cursor.set_position((cursor_position + hash_digest_size) as u64); - - Ok(Cid::new_v1(codec_code, multihash)) -} - -fn read_cid(cursor: &mut Cursor) -> Result -where - B: AsRef<[u8]>, -{ - // Attempt to read it as a CIDv0 first - let cid_v0_hash_code = cursor.read_u8()? as u64; - let cid_v0_hash_length = cursor.read_u8()? as usize; - - if cid_v0_hash_code == 0x12 && cid_v0_hash_length == 0x20 { - let cursor_position = cursor.position() as usize; - let multihash = Multihash::wrap( - cid_v0_hash_code, - &cursor.get_ref().as_ref()[cursor_position..(cursor_position + cid_v0_hash_length)], - )?; - return Ok(Cid::new_v0(multihash)?); - } - - // Couldn't read a CIDv0, means it is V1 - // rewind to regain the two bytes we read - cursor.rewind()?; - read_cid_v1(cursor) -} - -/// Low-level CARv1 reader. -pub struct Reader { - reader: R, -} - -impl Reader { - fn new(reader: R) -> Self { - Self { reader } - } -} - -impl Reader -where - R: AsyncRead + Unpin, -{ - /// Read an [`Header`]. - async fn read_header(&mut self) -> Result { - let header_length: usize = self.reader.read_varint_async().await?; - let mut header_buffer = Vec::with_capacity(header_length); - self.reader.read_buf(&mut header_buffer).await?; - let header: Header = DagCborCodec::decode_from_slice(&header_buffer)?; - debug_assert!(header.version == 1, "header version is not 1"); - debug_assert!(!header.roots.is_empty(), "header does not have roots"); - Ok(header) - } - - /// Reads a data block, composed of a [`Cid`] and the remaining data. - /// - /// The remaining data is returned AS IS, callers should use the coded - /// described in the returned [`Cid`] to parse it. - /// - /// A block is composed of a CID (either version 0 or 1) and data. - /// ```text - /// | CID | Data block | - /// CIDv0 | hash function code (byte 0x12) | digest size (byte 0x20) | digest | ********** | - /// CIDv1 | hash function code (varint) | digest size (varint) | digest | ********** | - /// ``` - async fn read_block(&mut self) -> Result<(Cid, Vec), Error> { - let full_block_length: usize = self.reader.read_varint_async().await?; - let mut full_block_buffer = Vec::with_capacity(full_block_length); - // Read the full block to save on later allocations - self.reader.read_buf(&mut full_block_buffer).await?; - - let mut full_block_cursor = Cursor::new(full_block_buffer); - let cid = read_cid(&mut full_block_cursor)?; - - let data_start_position = full_block_cursor.position() as usize; - let mut full_block_buffer = full_block_cursor.into_inner(); - - Ok((cid, full_block_buffer.split_off(data_start_position))) - } -} - -/// Low-level CARv1 writer. -pub struct Writer { - writer: W, - was_header_written: bool, - /// Avoids allocating a new buffer each time we write a [`Cid`]. - cid_buffer: Vec, -} - -impl Writer { - /// Construct a new CARv1 writer. - /// - /// Takes a writer into which the data will be written. - pub fn new(writer: W) -> Self { - Self { - writer, - was_header_written: false, - cid_buffer: Vec::new(), - } - } -} - -impl Writer -where - W: AsyncWrite + Unpin, -{ - /// Write a CARv1 header. - /// - /// * If the header has already been written, this is a no-op. - pub async fn write_header(&mut self, header: &Header) -> Result<(), Error> { - if !self.was_header_written { - write_header(&mut self.writer, header).await?; - self.was_header_written = true; - } - Ok(()) - } - - /// Write a [`Cid`] and the respective data block. - pub async fn write_block(&mut self, cid: &Cid, data: &D) -> Result<(), Error> - where - D: AsRef<[u8]>, - { - write_block(&mut self.writer, cid, data, &mut self.cid_buffer).await - } - - /// Flushes and returns the inner writer. - pub async fn finish(mut self) -> Result { - self.writer.flush().await?; - Ok(self.writer) - } -} - -#[cfg(test)] -mod tests { - use std::{io::Cursor, path::Path}; - - use ipld_core::cid::{multihash::Multihash, Cid, Version}; - use sha2::Sha256; - use tokio::{ - fs::File, - io::{BufReader, BufWriter}, - }; - - use crate::{ - car_v1::{Header, Reader}, - generate_multihash, - }; - - use super::Writer; - - const RAW_CODEC: u64 = 0x55; - - impl Writer>> { - fn test_writer() -> Self { - let buffer = Vec::new(); - let buf_writer = BufWriter::new(buffer); - Writer::new(buf_writer) - } - } - - async fn file_multihash

(path: P) -> Multihash<64> - where - P: AsRef, - { - let file_contents = tokio::fs::read(path).await.unwrap(); - generate_multihash::(&file_contents) - } - - #[test] - fn read_cid_v0_roundtrip() { - let contents = std::fs::read("tests/fixtures/text/lorem.txt").unwrap(); - let contents_multihash = generate_multihash::(&contents); - let contents_cid = Cid::new_v0(contents_multihash).unwrap(); - let encoded_cid = contents_cid.to_bytes(); - let mut cursor = Cursor::new(encoded_cid); - - let cid = super::read_cid(&mut cursor).unwrap(); - assert_eq!(cid.version(), Version::V0); - assert_eq!(cid.hash(), &contents_multihash); - } - - #[test] - fn read_cid_v1_roundtrip() { - let contents = std::fs::read("tests/fixtures/text/lorem.txt").unwrap(); - let contents_multihash = generate_multihash::(&contents); - let contents_cid = Cid::new_v1(RAW_CODEC, contents_multihash); - let encoded_cid = contents_cid.to_bytes(); - let mut cursor = Cursor::new(encoded_cid); - - let cid = super::read_cid_v1(&mut cursor).unwrap(); - assert_eq!(cid.version(), Version::V1); - assert_eq!(cid.hash(), &contents_multihash); - } - - #[tokio::test] - async fn header_reader() { - let contents_multihash = file_multihash("tests/fixtures/text/lorem.txt").await; - let contents_cid = Cid::new_v1(RAW_CODEC, contents_multihash); - - let file = File::open("tests/fixtures/car_v1/lorem_header.car") - .await - .unwrap(); - let reader = BufReader::new(file); - let mut reader = Reader::new(reader); - let header = reader.read_header().await.unwrap(); - - assert_eq!(header.version, 1); - assert_eq!(header.roots.len(), 1); - assert_eq!(header.roots[0], contents_cid); - } - - #[tokio::test] - async fn full_reader() { - let contents = tokio::fs::read("tests/fixtures/text/lorem.txt") - .await - .unwrap(); - let contents_multihash = generate_multihash::(&contents); - let contents_cid = Cid::new_v1(RAW_CODEC, contents_multihash); - - let file = File::open("tests/fixtures/car_v1/lorem.car").await.unwrap(); - let reader = BufReader::new(file); - let mut reader = Reader::new(reader); - let header = reader.read_header().await.unwrap(); - - assert_eq!(header.version, 1); - assert_eq!(header.roots.len(), 1); - assert_eq!(header.roots[0], contents_cid); - - let (cid, block) = reader.read_block().await.unwrap(); - assert_eq!(cid, contents_cid); - assert_eq!(block, contents); - } - - #[tokio::test] - async fn header_writer() { - let contents_multihash = file_multihash("tests/fixtures/text/lorem.txt").await; - let root_cid = Cid::new_v1(RAW_CODEC, contents_multihash); - - let mut writer = Writer::test_writer(); - writer - .write_header(&Header::new(vec![root_cid])) - .await - .unwrap(); - let buf_writer = writer.finish().await.unwrap(); - - let expected_header = tokio::fs::read("tests/fixtures/car_v1/lorem_header.car") - .await - .unwrap(); - - assert_eq!(&expected_header, buf_writer.get_ref()); - } - - #[tokio::test] - async fn full_writer() { - let file_contents = tokio::fs::read("tests/fixtures/text/lorem.txt") - .await - .unwrap(); - let contents_multihash = generate_multihash::(&file_contents); - let root_cid = Cid::new_v1(RAW_CODEC, contents_multihash); - - let mut writer = Writer::test_writer(); - writer - .write_header(&Header::new(vec![root_cid])) - .await - .unwrap(); - // There's only one block - writer.write_block(&root_cid, &file_contents).await.unwrap(); - let buf_writer = writer.finish().await.unwrap(); - - let expected_header = tokio::fs::read("tests/fixtures/car_v1/lorem.car") - .await - .unwrap(); - assert_eq!(&expected_header, buf_writer.get_ref()); - } -} diff --git a/storage/file-storage/src/car/car_v1.rs b/storage/file-storage/src/car/car_v1.rs deleted file mode 100644 index 790cc4333..000000000 --- a/storage/file-storage/src/car/car_v1.rs +++ /dev/null @@ -1,98 +0,0 @@ -use ipld_core::{cid::Cid, codec::Codec}; -use serde::{Deserialize, Serialize}; -use serde_ipld_dagcbor::{codec::DagCborCodec, error::CodecError}; - -// Codes taken from https://github.com/multiformats/multicodec/blob/c954a787dc6a17d099653e5f90d26fbd177d2074/table.csv -const SHA2_256_CODE: u64 = 0x12; -// Raw code used because the JS CAR implementation shows an example with it -// https://github.com/ipld/js-car -const RAW_CODE: u64 = 0x55; - -pub const CAR_V1_VERSION: u8 = 1; - -pub type UnixFsBlock = (Cid, Vec); - -#[derive(Debug, Deserialize, Serialize, PartialEq, Eq)] -struct CarV1Header { - pub header: u8, - pub roots: Vec, -} - -impl CarV1Header { - fn new(roots: Vec) -> Self { - Self { - header: CAR_V1_VERSION, - roots, - } - } -} - -impl TryFrom<&[u8]> for CarV1Header { - type Error = CodecError; - - fn try_from(value: &[u8]) -> Result { - DagCborCodec::decode_from_slice(value) - } -} - -impl TryFrom<&CarV1Header> for Vec { - type Error = CodecError; - - fn try_from(value: &CarV1Header) -> Result { - DagCborCodec::encode_to_vec(value) - } -} - -struct CarV1 { - header: CarV1Header, - blocks: Vec, -} - -#[cfg(test)] -mod tests { - use std::fs::read; - - use digest::Digest; - use ipld_core::{ - cid::{multihash::Multihash, Cid}, - codec::Codec, - }; - use rand::random; - use serde_ipld_dagcbor::codec::DagCborCodec; - use sha2::Sha256; - - use crate::car::car_v1::{RAW_CODE, SHA2_256_CODE}; - - use super::CarV1Header; - - fn generate_random_multihash() -> Multihash<64> - where - H: Digest, - { - let bytes = random::<[u8; 32]>(); - let mut hasher = H::new(); - hasher.update(&bytes); - let hashed_bytes = hasher.finalize(); - Multihash::wrap(H_CODE, &hashed_bytes).unwrap() - } - - #[test] - fn roundtrip_cid_v0() { - let multihash = generate_random_multihash::(); - let cid = Cid::new_v0(multihash).unwrap(); - let header = CarV1Header::new(vec![cid]); - let encoded_header = DagCborCodec::encode_to_vec(&header).unwrap(); - let decoded_header: CarV1Header = DagCborCodec::decode_from_slice(&encoded_header).unwrap(); - assert_eq!(header, decoded_header); - } - - #[test] - fn roundtrip_cid_v1_sha2_256() { - let multihash = generate_random_multihash::(); - let cid = Cid::new_v1(RAW_CODE, multihash); - let header = CarV1Header::new(vec![cid]); - let encoded_header = DagCborCodec::encode_to_vec(&header).unwrap(); - let decoded_header: CarV1Header = DagCborCodec::decode_from_slice(&encoded_header).unwrap(); - assert_eq!(header, decoded_header); - } -} diff --git a/storage/file-storage/src/car/mod.rs b/storage/file-storage/src/car/mod.rs index fa2f4ed97..4d63b4978 100644 --- a/storage/file-storage/src/car/mod.rs +++ b/storage/file-storage/src/car/mod.rs @@ -1,3 +1,30 @@ -mod async_car_v1; -mod car_v1; -mod chunker; +// mod chunker; +// mod pb; +mod v1; +mod v2; + +use ipld_core::cid::multihash::Multihash; +use sha2::{Digest, Sha256}; + +// TODO(@jmg-duarte,20/05/2024): move and unify the Error here + +/// Trait to ease implementing generic multihash generation. +pub trait MultihashCode { + /// Multihash code as defined in the [specification](https://github.com/multiformats/multicodec/blob/c954a787dc6a17d099653e5f90d26fbd177d2074/table.csv). + const CODE: u64; +} + +/// Generate a multihash for a byte slice. +pub fn generate_multihash(bytes: &[u8]) -> Multihash<64> +where + H: Digest + MultihashCode, +{ + let mut hasher = H::new(); + hasher.update(&bytes); + let hashed_bytes = hasher.finalize(); + Multihash::wrap(H::CODE, &hashed_bytes).unwrap() +} + +impl MultihashCode for Sha256 { + const CODE: u64 = 0x12; +} diff --git a/storage/file-storage/src/car/v1/mod.rs b/storage/file-storage/src/car/v1/mod.rs new file mode 100644 index 000000000..7ec7355ae --- /dev/null +++ b/storage/file-storage/src/car/v1/mod.rs @@ -0,0 +1,43 @@ +mod reader; +mod writer; + +use ipld_core::cid::Cid; + +use serde::{Deserialize, Serialize}; +use thiserror::Error; + +pub use crate::car::v1::reader::Reader; +pub use crate::car::v1::writer::Writer; + +pub(crate) use crate::car::v1::reader::{read_block, read_header}; +pub(crate) use crate::car::v1::writer::{write_block, write_header}; + +#[derive(Debug, Error)] +pub enum Error { + #[error(transparent)] + CodecError(#[from] serde_ipld_dagcbor::error::CodecError), + #[error(transparent)] + IoError(#[from] tokio::io::Error), + #[error(transparent)] + CidError(#[from] ipld_core::cid::Error), + #[error(transparent)] + MultihashError(#[from] ipld_core::cid::multihash::Error), + #[error("trying to read V2")] + CarV2Error, +} + +/// Low-level CARv1 header. +#[derive(Debug, Serialize, Deserialize)] +pub struct Header { + pub version: u8, + pub roots: Vec, +} + +impl Header { + /// Construct a new CARv1 header. + /// + /// The version will always be 1. + pub fn new(roots: Vec) -> Self { + Self { version: 1, roots } + } +} diff --git a/storage/file-storage/src/car/v1/reader.rs b/storage/file-storage/src/car/v1/reader.rs new file mode 100644 index 000000000..51197025d --- /dev/null +++ b/storage/file-storage/src/car/v1/reader.rs @@ -0,0 +1,237 @@ +use std::io::{Cursor, Seek}; + +use byteorder::ReadBytesExt; +use ipld_core::{ + cid::{multihash::Multihash, Cid}, + codec::Codec, +}; + +use integer_encoding::{VarIntAsyncReader, VarIntReader}; + +use serde_ipld_dagcbor::codec::DagCborCodec; +use tokio::io::{AsyncRead, AsyncReadExt}; + +use crate::{ + car::v1::{Error, Header}, + car::v2::PRAGMA, +}; + +fn read_cid_v1(cursor: &mut Cursor) -> Result +where + B: AsRef<[u8]>, +{ + let cid_version: u64 = cursor.read_varint()?; + debug_assert_eq!(cid_version, 1); + let codec_code: u64 = cursor.read_varint()?; + + let hash_function_code: u64 = cursor.read_varint()?; + let hash_digest_size: usize = cursor.read_varint()?; + + let cursor_position = cursor.position() as usize; + let hash_digest_slice = + &cursor.get_ref().as_ref()[cursor_position..(cursor_position + hash_digest_size)]; + + // At this point, the cursor holds an allocated buffer + // Reading into a new buffer would require the new buffer to be allocated + // Taking the slice directly from the inner buffer and setting the position avoids that allocation + let multihash = Multihash::wrap(hash_function_code, hash_digest_slice)?; + cursor.set_position((cursor_position + hash_digest_size) as u64); + + Ok(Cid::new_v1(codec_code, multihash)) +} + +fn read_cid(cursor: &mut Cursor) -> Result +where + B: AsRef<[u8]>, +{ + // Attempt to read it as a CIDv0 first + let cid_v0_hash_code = cursor.read_u8()? as u64; + let cid_v0_hash_length = cursor.read_u8()? as usize; + + if cid_v0_hash_code == 0x12 && cid_v0_hash_length == 0x20 { + let cursor_position = cursor.position() as usize; + let multihash = Multihash::wrap( + cid_v0_hash_code, + &cursor.get_ref().as_ref()[cursor_position..(cursor_position + cid_v0_hash_length)], + )?; + return Ok(Cid::new_v0(multihash)?); + } + + // Couldn't read a CIDv0, means it is V1 + // rewind to regain the two bytes we read + cursor.rewind()?; + + read_cid_v1(cursor) +} + +pub(crate) async fn read_header(mut reader: R) -> Result +where + R: AsyncRead + Unpin, +{ + let header_length: usize = reader.read_varint_async().await?; + let mut header_buffer = vec![0; header_length]; + reader.read_exact(&mut header_buffer).await?; + + // From the V2 specification: + // > This 11 byte string remains fixed and may be matched using a + // > simple byte comparison and does not require a varint or CBOR + // > decode since it does not vary for the CARv2 format. + // We're skipping the first byte because we already read the length + if header_buffer.starts_with(&PRAGMA[1..]) { + return Err(Error::CarV2Error); + } + + let header: Header = DagCborCodec::decode_from_slice(&header_buffer)?; + debug_assert!(header.version == 1, "header version is not 1"); + debug_assert!(!header.roots.is_empty(), "header does not have roots"); + Ok(header) +} + +pub(crate) async fn read_block(mut reader: R) -> Result<(Cid, Vec), Error> +where + R: AsyncRead + Unpin, +{ + let full_block_length: usize = reader.read_varint_async().await?; + let mut full_block_buffer = vec![0; full_block_length]; + reader.read_exact(&mut full_block_buffer).await?; + + // We're cheating to get Seek + let mut full_block_cursor = Cursor::new(full_block_buffer); + let cid = read_cid(&mut full_block_cursor)?; + + let data_start_position = full_block_cursor.position() as usize; + let mut full_block_buffer = full_block_cursor.into_inner(); + + // NOTE(@jmg-duarte,19/05/2024): could we avoid getting a new vector here and just drop the beginning? + Ok((cid, full_block_buffer.split_off(data_start_position))) +} + +/// Low-level CARv1 reader. +pub struct Reader { + reader: R, +} + +impl Reader { + pub fn new(reader: R) -> Self { + Self { reader } + } +} + +impl Reader +where + R: AsyncRead + Unpin, +{ + /// Read an [`Header`]. + pub async fn read_header(&mut self) -> Result { + read_header(&mut self.reader).await + } + + /// Reads a block. + /// + /// A block is composed of a CID (either version 0 or 1) and data, it is prefixed with the data length. + /// Below you can see a diagram: + /// ```text + /// ┌──────────────────────┬─────┬────────────────────────┐ + /// │ Data length (varint) │ CID │ Data block (raw bytes) │ + /// └──────────────────────┴─────┴────────────────────────┘ + /// ``` + /// The data block is returned AS IS, callers should use the codec field of the [`Cid`] to parse it. + pub async fn read_block(&mut self) -> Result<(Cid, Vec), Error> { + read_block(&mut self.reader).await + } +} + +#[cfg(test)] +mod tests { + use std::{io::Cursor, path::Path}; + + use ipld_core::cid::{multihash::Multihash, Cid, Version}; + use sha2::Sha256; + use tokio::{fs::File, io::BufReader}; + + use crate::{ + car::generate_multihash, + car::v1::{self, reader::read_cid, Error, Reader}, + }; + + const RAW_CODEC: u64 = 0x55; + + #[test] + fn read_cid_v0_roundtrip() { + let contents = std::fs::read("tests/fixtures/original/lorem.txt").unwrap(); + let contents_multihash = generate_multihash::(&contents); + let contents_cid = Cid::new_v0(contents_multihash).unwrap(); + let encoded_cid = contents_cid.to_bytes(); + let mut cursor = Cursor::new(encoded_cid); + + let cid = read_cid(&mut cursor).unwrap(); + assert_eq!(cid.version(), Version::V0); + assert_eq!(cid.hash(), &contents_multihash); + } + + #[test] + fn read_cid_v1_roundtrip() { + let contents = std::fs::read("tests/fixtures/original/lorem.txt").unwrap(); + let contents_multihash = generate_multihash::(&contents); + let contents_cid = Cid::new_v1(RAW_CODEC, contents_multihash); + let encoded_cid = contents_cid.to_bytes(); + let mut cursor = Cursor::new(encoded_cid); + + let cid = super::read_cid_v1(&mut cursor).unwrap(); + assert_eq!(cid.version(), Version::V1); + assert_eq!(cid.hash(), &contents_multihash); + } + + #[tokio::test] + async fn header_reader() { + let contents = tokio::fs::read("tests/fixtures/original/lorem.txt") + .await + .unwrap(); + let contents_multihash = generate_multihash::(&contents); + let contents_cid = Cid::new_v1(RAW_CODEC, contents_multihash); + + let file = File::open("tests/fixtures/car_v1/lorem_header.car") + .await + .unwrap(); + let reader = BufReader::new(file); + let mut reader = Reader::new(reader); + let header = reader.read_header().await.unwrap(); + + assert_eq!(header.version, 1); + assert_eq!(header.roots.len(), 1); + assert_eq!(header.roots[0], contents_cid); + } + + #[tokio::test] + async fn full_reader() { + let contents = tokio::fs::read("tests/fixtures/original/lorem.txt") + .await + .unwrap(); + let contents_multihash = generate_multihash::(&contents); + let contents_cid = Cid::new_v1(RAW_CODEC, contents_multihash); + + let file = File::open("tests/fixtures/car_v1/lorem.car").await.unwrap(); + let reader = BufReader::new(file); + let mut reader = Reader::new(reader); + let header = reader.read_header().await.unwrap(); + + assert_eq!(header.version, 1); + assert_eq!(header.roots.len(), 1); + assert_eq!(header.roots[0], contents_cid); + + let (cid, block) = reader.read_block().await.unwrap(); + assert_eq!(cid, contents_cid); + assert_eq!(block, contents); + } + + #[tokio::test] + async fn v2_header() { + let file = File::open("tests/fixtures/car_v2/lorem.car").await.unwrap(); + let mut reader = Reader::new(file); + let header = reader.read_header().await; + println!("{:?}", header); + assert!(matches!(header, Err(Error::CarV2Error))); + } + + // TODO(@jmg-duarte,19/05/2024): add more tests +} diff --git a/storage/file-storage/src/car/v1/writer.rs b/storage/file-storage/src/car/v1/writer.rs new file mode 100644 index 000000000..5769b42c8 --- /dev/null +++ b/storage/file-storage/src/car/v1/writer.rs @@ -0,0 +1,169 @@ +use ipld_core::{cid::Cid, codec::Codec}; + +use integer_encoding::VarIntAsyncWriter; +use serde_ipld_dagcbor::codec::DagCborCodec; +use tokio::io::{AsyncWrite, AsyncWriteExt}; + +pub use crate::car::v1::{Error, Header}; + +/// Write a CARv1 header to the provider writer. +pub(crate) async fn write_header(writer: &mut W, header: &Header) -> Result<(), Error> +where + W: AsyncWrite + Unpin, +{ + let encoded_header = DagCborCodec::encode_to_vec(header)?; + writer.write_varint_async(encoded_header.len()).await?; + writer.write_all(&encoded_header).await?; + Ok(()) +} + +/// Write a [`Cid`] and block to the given writer. +/// +/// This is a low-level function to be used in the implementation of CAR writers. +/// The function takes a `cid_buffer` to avoid allocating a new buffer every time it is called. +pub(crate) async fn write_block( + writer: &mut W, + cid: &Cid, + block: Block, + mut cid_buffer: &mut Vec, // AsMut<[u8]> just pretends to work actually +) -> Result<(), Error> +where + W: AsyncWrite + Unpin, + Block: AsRef<[u8]>, +{ + let written = cid.write_bytes(&mut cid_buffer)?; + debug_assert!(written == cid.encoded_len(), "failed to write the full Cid"); + let data = block.as_ref(); + let len = written + data.len(); + + writer.write_varint_async(len).await?; + writer.write_all(&cid_buffer[..written]).await?; + writer.write_all(&data).await?; + Ok(()) +} + +/// Low-level CARv1 writer. +pub struct Writer { + writer: W, + /// Avoids allocating a new buffer each time we write a [`Cid`]. + cid_buffer: Vec, +} + +impl Writer { + /// Construct a new CARv1 writer. + /// + /// Takes a writer into which the data will be written. + pub fn new(writer: W) -> Self { + Self { + writer, + cid_buffer: Vec::new(), + } + } +} + +impl Writer +where + W: AsyncWrite + Unpin, +{ + /// Write a CARv1 header. + /// + /// * If the header has already been written, this is a no-op. + pub async fn write_header(&mut self, header: &Header) -> Result<(), Error> { + write_header(&mut self.writer, header).await + } + + /// Write a [`Cid`] and the respective data block. + pub async fn write_block(&mut self, cid: &Cid, data: &D) -> Result<(), Error> + where + D: AsRef<[u8]>, + { + write_block(&mut self.writer, cid, data, &mut self.cid_buffer).await + } + + /// Flushes and returns the inner writer. + pub async fn finish(mut self) -> Result { + self.writer.flush().await?; + Ok(self.writer) + } +} + +#[cfg(test)] +mod tests { + use std::{io::Cursor, path::Path}; + + use ipld_core::cid::{multihash::Multihash, Cid, Version}; + use sha2::Sha256; + use tokio::{ + fs::File, + io::{BufReader, BufWriter}, + }; + + use crate::{ + car::generate_multihash, + car::v1::{Header, Reader}, + }; + + use super::Writer; + + const RAW_CODEC: u64 = 0x55; + + impl Writer>> { + fn test_writer() -> Self { + let buffer = Vec::new(); + let buf_writer = BufWriter::new(buffer); + Writer::new(buf_writer) + } + } + + async fn file_multihash

(path: P) -> Multihash<64> + where + P: AsRef, + { + let file_contents = tokio::fs::read(path).await.unwrap(); + generate_multihash::(&file_contents) + } + + #[tokio::test] + async fn header_writer() { + let contents_multihash = file_multihash("tests/fixtures/original/lorem.txt").await; + let root_cid = Cid::new_v1(RAW_CODEC, contents_multihash); + + let mut writer = Writer::test_writer(); + writer + .write_header(&Header::new(vec![root_cid])) + .await + .unwrap(); + let buf_writer = writer.finish().await.unwrap(); + + let expected_header = tokio::fs::read("tests/fixtures/car_v1/lorem_header.car") + .await + .unwrap(); + + assert_eq!(&expected_header, buf_writer.get_ref()); + } + + #[tokio::test] + async fn full_writer() { + let file_contents = tokio::fs::read("tests/fixtures/original/lorem.txt") + .await + .unwrap(); + let contents_multihash = generate_multihash::(&file_contents); + let root_cid = Cid::new_v1(RAW_CODEC, contents_multihash); + + let mut writer = Writer::test_writer(); + writer + .write_header(&Header::new(vec![root_cid])) + .await + .unwrap(); + // There's only one block + writer.write_block(&root_cid, &file_contents).await.unwrap(); + let buf_writer = writer.finish().await.unwrap(); + + let expected_header = tokio::fs::read("tests/fixtures/car_v1/lorem.car") + .await + .unwrap(); + assert_eq!(&expected_header, buf_writer.get_ref()); + } + + // TODO(@jmg-duarte,19/05/2024): add more tests +} diff --git a/storage/file-storage/src/car/v2/index.rs b/storage/file-storage/src/car/v2/index.rs new file mode 100644 index 000000000..64cb95c6d --- /dev/null +++ b/storage/file-storage/src/car/v2/index.rs @@ -0,0 +1,271 @@ +use std::collections::BTreeMap; + +use integer_encoding::VarIntAsyncReader; +use tokio::io::{AsyncRead, AsyncReadExt}; + +use crate::car::v2::Error; + +pub const INDEX_SORTED_CODE: u64 = 0x0400; +pub const MULTIHASH_INDEX_SORTED_CODE: u64 = 0x0401; + +// Basically, everything that does not have explicit endianness +// is little-endian, as made evident by the go-car source code +// https://github.com/ipld/go-car/blob/45b81c1cc5117b3340dfdb025afeca90bfbe8d86/v2/index/mhindexsorted.go#L45-L53 + +/// A index entry for a data block inside the CARv1. +#[derive(Debug, PartialEq, Eq, PartialOrd, Ord)] +pub struct IndexEntry { + /// Hash digest of the data. + pub digest: Vec, + + /// Offset to the first byte of the varint that prefix the CID:Bytes pair within the CARv1 payload. + /// + /// See the [data section in the CARv1 specification](https://ipld.io/specs/transport/car/carv1/#data) + /// for details on block encoding. + pub offset: u64, +} + +/// An index containing a single digest length. +#[derive(Debug)] +pub struct SingleWidthIndex { + /// The hash digest and the respective offset length. + pub width: u32, + + /// The number of index entries. + pub count: u64, + + /// The index entries. + pub entries: Vec, +} + +/// An index containing hash digests of multiple lengths. +/// +/// To find a given index entry, first find the right index width, +/// and then find the hash to the data block. +/// +/// For more details, read the [`Format 0x0400: IndexSorted`](https://ipld.io/specs/transport/car/carv2/#format-0x0400-indexsorted) section in the CARv2 specification. +#[derive(Debug)] +pub struct MultiWidthIndex(pub Vec); + +/// An index mapping Multihash codes to [`MultiWidthIndex`]. +/// +/// For more details, read the [`Format 0x0401: MultihashIndexSorted`](https://ipld.io/specs/transport/car/carv2/#format-0x0401-multihashindexsorted) section in the CARv2 specification. +#[derive(Debug)] +pub struct MultihashIndexSorted(pub BTreeMap); + +/// CARv2 index. +#[derive(Debug)] +pub enum Index { + IndexSorted(MultiWidthIndex), + MultihashIndexSorted(MultihashIndexSorted), +} + +pub(crate) async fn read_index(mut reader: R) -> Result +where + R: AsyncRead + Unpin, +{ + let index_type: u64 = reader.read_varint_async().await?; + return match index_type { + INDEX_SORTED_CODE => Ok(Index::IndexSorted(read_index_sorted(&mut reader).await?)), + MULTIHASH_INDEX_SORTED_CODE => Ok(Index::MultihashIndexSorted( + read_multihash_index_sorted(&mut reader).await?, + )), + other => Err(Error::UnknownIndexError(other)), + }; +} + +pub(crate) async fn read_multihash_index_sorted( + mut reader: R, +) -> Result +where + R: AsyncRead + Unpin, +{ + let n_indexes = reader.read_i32_le().await?; + let mut indexes = BTreeMap::new(); + for _ in 0..n_indexes { + let multihash_code = reader.read_u64_le().await?; + let index = read_index_sorted(&mut reader).await?; + indexes.insert(multihash_code, index); + } + Ok(MultihashIndexSorted(indexes)) +} + +pub(crate) async fn read_index_sorted(mut reader: R) -> Result +where + R: AsyncRead + Unpin, +{ + let n_buckets = reader.read_i32_le().await?; + let mut buckets = Vec::with_capacity(n_buckets as usize); + for _ in 0..n_buckets { + let index = read_single_width_index(&mut reader).await?; + buckets.push(index); + } + Ok(MultiWidthIndex(buckets)) +} + +pub(crate) async fn read_single_width_index(mut reader: R) -> Result +where + R: AsyncRead + Unpin, +{ + let width = reader.read_u32_le().await?; + // Because someone decided that "total number of hash digests" means their length in bytes... + // https://github.com/ipld/go-car/blob/45b81c1cc5117b3340dfdb025afeca90bfbe8d86/v2/index/indexsorted.go#L29 + let count = reader.read_u64_le().await? / (width as u64); + let mut entries = Vec::with_capacity(count as usize); + for _ in 0..count { + // The offset is always 8 bytes + // https://github.com/ipld/go-car/blob/45b81c1cc5117b3340dfdb025afeca90bfbe8d86/v2/index/indexsorted.go#L176 + let entry = read_index_entry(&mut reader, width - 8).await?; + entries.push(entry); + } + + // Sorting by the digest only because it should be enough (famous last words) + // > ... and finally within those buckets ordered by a simple byte-wise sorting. + // — https://ipld.io/specs/transport/car/carv2/#format-0x0401-multihashindexsorted + entries.sort_by(|fst, snd| fst.digest.cmp(&snd.digest)); + + Ok(SingleWidthIndex { + width, + count, + entries, + }) +} + +pub(crate) async fn read_index_entry(mut reader: R, length: u32) -> Result +where + R: AsyncRead + Unpin, +{ + let mut digest = vec![0; length as usize]; + reader.read_exact(&mut digest).await?; + let offset = reader.read_u64_le().await?; + Ok(IndexEntry { digest, offset }) +} + +#[cfg(test)] +mod tests { + use std::collections::HashMap; + + use crate::{ + car::v1::read_block, + car::v2::index::read_index, + car::{generate_multihash, MultihashCode}, + }; + + use super::{read_multihash_index_sorted, Index}; + use sha2::{Digest, Sha256}; + use tokio::{fs::File, io::AsyncSeekExt}; + + #[tokio::test] + async fn multihash_index_sorted_lorem() { + let contents = tokio::fs::read("tests/fixtures/original/lorem.txt") + .await + .unwrap(); + let digest = Sha256::digest(&contents); + + let mut file = File::open("tests/fixtures/car_v2/lorem.car").await.unwrap(); + // We're skipping 2 bytes from the actual offset because we're not decoding the index type + file.seek(std::io::SeekFrom::Start(7714)).await.unwrap(); + let index = read_multihash_index_sorted(file).await.unwrap(); + assert_eq!(index.0.len(), 1); + assert!(index.0.contains_key(&Sha256::CODE)); + + let multi_width_index = &index.0[&Sha256::CODE]; + assert_eq!(multi_width_index.0.len(), 1); + + let single_width_index = &multi_width_index.0[0]; + assert_eq!(single_width_index.width, 40); + assert_eq!(single_width_index.count, 1); + assert_eq!(single_width_index.entries.len(), 1); + + let entry = &single_width_index.entries[0]; + // Data offset: 51 & Hash length: 8 + assert_eq!(entry.offset, 51 + 8); + assert_eq!(entry.digest, *digest); + } + + /// `tests/fixtures/original/spaceglenda.jpg` generates a CARv2 file + /// with multiple blocks, but not an insane amount, perfect for testing. + #[tokio::test] + async fn multihash_index_sorted_spaceglenda() { + let mut file = File::open("tests/fixtures/car_v2/spaceglenda.car") + .await + .unwrap(); + // We're skipping 2 bytes from the actual offset because we're not decoding the index type + file.seek(std::io::SeekFrom::Start(654455)).await.unwrap(); + let index = read_multihash_index_sorted(&mut file).await.unwrap(); + assert_eq!(index.0.len(), 1); + assert!(index.0.contains_key(&Sha256::CODE)); + + let multi_width_index = &index.0[&Sha256::CODE]; + assert_eq!(multi_width_index.0.len(), 1); + + let single_width_index = &multi_width_index.0[0]; + assert_eq!(single_width_index.width, 40); + assert_eq!(single_width_index.count, 4); + assert_eq!(single_width_index.entries.len(), 4); + + let mut codec_frequencies = HashMap::new(); + for entry in &single_width_index.entries { + file.seek(std::io::SeekFrom::Start( + 51 + // Cheating a bit using the start data offset + entry.offset, + )) + .await + .unwrap(); + + let (cid, block) = read_block(&mut file).await.unwrap(); + assert_eq!(cid.hash().code(), 0x12); + + // Sorting at this level is made byte-wise, so there's no short way + // to compare the expected codecs... + assert!( + cid.codec() == 0x70 || // DAG-PB + cid.codec() == 0x55 // RAW + ); + // instead we build a frequency table and check against that later! + if let Some(frequency) = codec_frequencies.get_mut(&cid.codec()) { + *frequency += 1; + } else { + codec_frequencies.insert(cid.codec(), 1); + } + + let multihash = generate_multihash::(&block); + assert_eq!(cid.hash(), &multihash); + } + + assert!(matches!(codec_frequencies.get(&0x70), Some(1))); + assert!(matches!(codec_frequencies.get(&0x55), Some(3))); + } + + #[tokio::test] + async fn multihash_index_sorted_from_read_index() { + let contents = tokio::fs::read("tests/fixtures/original/lorem.txt") + .await + .unwrap(); + let digest = Sha256::digest(&contents); + + let mut file = File::open("tests/fixtures/car_v2/lorem.car").await.unwrap(); + + file.seek(std::io::SeekFrom::Start(7712)).await.unwrap(); + let index = read_index(file).await.unwrap(); + assert!(matches!(index, Index::MultihashIndexSorted(_))); + + if let Index::MultihashIndexSorted(index) = index { + assert_eq!(index.0.len(), 1); + assert!(index.0.contains_key(&Sha256::CODE)); + + let multi_width_index = &index.0[&Sha256::CODE]; + assert_eq!(multi_width_index.0.len(), 1); + + let single_width_index = &multi_width_index.0[0]; + assert_eq!(single_width_index.width, 40); + assert_eq!(single_width_index.count, 1); + assert_eq!(single_width_index.entries.len(), 1); + + let entry = &single_width_index.entries[0]; + // Data offset: 51 & Hash length: 8 + assert_eq!(entry.offset, 51 + 8); + assert_eq!(entry.digest, *digest); + } + } +} diff --git a/storage/file-storage/src/car/v2/mod.rs b/storage/file-storage/src/car/v2/mod.rs new file mode 100644 index 000000000..02506e14d --- /dev/null +++ b/storage/file-storage/src/car/v2/mod.rs @@ -0,0 +1,215 @@ +mod index; +mod reader; + +use bitflags::bitflags; +use byteorder::{LittleEndian, WriteBytesExt}; +use ipld_core::cid::Cid; +use tokio::io::AsyncWrite; +use tokio::io::{AsyncRead, AsyncReadExt, AsyncWriteExt}; + +use crate::car::v2::reader::Reader; +use crate::car::{self, v1}; + +/// The pragma for a CARv2. This is also a valid CARv1 header, with version 2 and no root CIDs. +pub const PRAGMA: [u8; 11] = [ + 0x0a, // unit(10) + 0xa1, // map(1) + 0x67, // string(7) + 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, // "version" + 0x02, // uint(2) +]; + +#[derive(Debug, thiserror::Error)] +pub enum Error { + #[error(transparent)] + IoError(#[from] std::io::Error), + #[error(transparent)] + CarV1Error(#[from] car::v1::Error), + #[error("unknown index type {0}")] + UnknownIndexError(u64), +} + +bitflags! { + /// Characteristics of the enclosed data. + pub struct Characteristics: u128 { + const FULLY_INDEXED = 1 << 127; + } +} + +impl Characteristics { + /// Create a new [`Characteristics`]. + pub fn new(fully_indexed: bool) -> Self { + Self::FULLY_INDEXED + } + + /// Check whether the `fully-indexed` characteristic is set. + #[inline] + pub const fn is_fully_indexed(&self) -> bool { + self.intersects(Self::FULLY_INDEXED) + } +} + +/// Low-level CARv2 header. +pub struct Header { + /// Describes certain features of the enclosed data. + characteristics: Characteristics, + /// Byte-offset from the beginning of the CARv2 pragma to the first byte of the CARv1 data payload. + data_offset: u64, + /// Byte-length of the CARv1 data payload. + data_size: u64, + /// Byte-offset from the beginning of the CARv2 pragma to the first byte of the index payload. + /// This value may be 0 to indicate the absence of index data. + index_offset: u64, +} + +impl Header { + pub fn new(fully_indexed: bool, data_offset: u64, data_size: u64, index_offset: u64) -> Self { + Self { + characteristics: Characteristics::new(fully_indexed), + data_offset, + data_size, + index_offset, + } + } +} + +/// Low-level CARv2 writer. +// TODO(@jmg-duarte,17/05/2024): add padding support +pub struct Writer +where + W: AsyncWrite + Unpin, +{ + writer: W, + has_written_header: bool, + has_written_v1_header: bool, + cid_buffer: Vec, +} + +impl Writer +where + W: AsyncWrite + Unpin, +{ + /// Construct a new CARv1 writer. + /// + /// Takes a write into which the data will be written. + pub fn new(writer: W) -> Self { + Self { + writer, + has_written_header: false, + has_written_v1_header: false, + cid_buffer: Vec::new(), + } + } + + /// Write a CARv2 header. + /// + /// * If the header has already been written, this is a no-op. + pub async fn write_header(&mut self, header: &Header) -> Result<(), Error> { + if !self.has_written_header { + self.writer.write(&PRAGMA).await?; + + let mut buffer = [0; 40]; + let mut handle = &mut buffer[..]; + WriteBytesExt::write_u128::(&mut handle, header.characteristics.bits())?; + WriteBytesExt::write_u64::(&mut handle, header.data_offset)?; + WriteBytesExt::write_u64::(&mut handle, header.data_size)?; + WriteBytesExt::write_u64::(&mut handle, header.index_offset)?; + + self.writer.write_all(&buffer).await?; + self.has_written_header = true; + } + Ok(()) + } + + /// Write a CARv1 header. + /// + /// * If the header has already been written, this is a no-op. + pub async fn write_v1_header(&mut self, v1_header: &car::v1::Header) -> Result<(), Error> { + debug_assert!( + self.has_written_header, + "CARv2 header has not been written!" + ); + if !self.has_written_v1_header { + car::v1::write_header(&mut self.writer, v1_header).await?; + self.has_written_v1_header = true; + } + Ok(()) + } + + /// Write a [`Cid`] and the respective data block. + pub async fn write_block(&mut self, cid: &Cid, block: &Block) -> Result<(), Error> + where + Block: AsRef<[u8]>, + { + debug_assert!( + self.has_written_header && self.has_written_v1_header, + "Both headers need to be written!" + ); + car::v1::write_block(&mut self.writer, cid, block, &mut self.cid_buffer).await?; + Ok(()) + } + + /// Flushes and returns the inner writer. + pub async fn finish(mut self) -> Result { + self.writer.flush().await?; + Ok(self.writer) + } +} + +#[cfg(test)] +mod tests { + use ipld_core::cid::Cid; + use sha2::Sha256; + use tokio::io::BufWriter; + + use crate::{car, car::generate_multihash, car::v2::Header}; + + use super::Writer; + + const RAW_CODEC: u64 = 0x55; + + impl Writer>> { + fn test_writer() -> Self { + let buffer = Vec::new(); + let buf_writer = BufWriter::new(buffer); + Writer::new(buf_writer) + } + } + + #[tokio::test] + async fn header() { + // TODO(@jmg-duarte,18/05/2024): finish this + } + + #[tokio::test] + async fn full() { + let mut writer = Writer::test_writer(); + + let file_contents = tokio::fs::read("tests/fixtures/original/lorem.txt") + .await + .unwrap(); + let contents_multihash = generate_multihash::(&file_contents); + let root_cid = Cid::new_v1(RAW_CODEC, contents_multihash); + + // Values were reversed out of a the car file + writer + .write_header(&Header::new(false, 51, 7661, 7712)) + .await + .unwrap(); + + writer + .write_v1_header(&car::v1::Header::new(vec![root_cid])) + .await + .unwrap(); + // There's only one block + writer.write_block(&root_cid, &file_contents).await.unwrap(); + + let buf_writer = writer.finish().await.unwrap(); + + let expected_header = tokio::fs::read("tests/fixtures/car_v1/lorem.car") + .await + .unwrap(); + + assert_eq!(&expected_header, buf_writer.get_ref()); + } +} diff --git a/storage/file-storage/src/car/v2/reader.rs b/storage/file-storage/src/car/v2/reader.rs new file mode 100644 index 000000000..a077bf895 --- /dev/null +++ b/storage/file-storage/src/car/v2/reader.rs @@ -0,0 +1,305 @@ +use bitflags::bitflags; +use byteorder::{LittleEndian, WriteBytesExt}; +use ipld_core::cid::Cid; +use thiserror::Error; +use tokio::io::{AsyncRead, AsyncReadExt, AsyncWriteExt}; +use tokio::io::{AsyncSeek, AsyncWrite}; + +use crate::car; +use crate::car::v1::{self}; +use crate::car::v2::{Characteristics, Error, Header, PRAGMA}; + +use crate::car::v2::index::Index; + +use super::index::read_index; + +/// Low-level CARv2 reader. +pub struct Reader { + reader: R, +} + +impl Reader { + pub fn new(reader: R) -> Self { + Self { reader } + } +} + +impl Reader +where + R: AsyncRead + Unpin, +{ + pub async fn read_pragma(&mut self) -> Result, Error> { + let mut pragma_buffer = vec![0; PRAGMA.len()]; + self.reader.read_exact(&mut pragma_buffer).await?; + // NOTE(@jmg-duarte,20/05/2024): Should we validate the pragma here? + debug_assert_eq!(pragma_buffer, PRAGMA); + Ok(pragma_buffer) + } + + /// Read the [`Header`]. + pub async fn read_header(&mut self) -> Result { + // Even though the standard doesn't explicitly state endianness, go-car does + // https://github.com/ipld/go-car/blob/45b81c1cc5117b3340dfdb025afeca90bfbe8d86/v2/car.go#L51-L69 + let characteristics_bitfield = self.reader.read_u128_le().await?; + // NOTE(@jmg-duarte,19/05/2024): unsure if we should fail on unknown bits, truncate them, or ignore + let characteristics = Characteristics::from_bits_retain(characteristics_bitfield); + + let data_offset = self.reader.read_u64_le().await?; + let data_size = self.reader.read_u64_le().await?; + let index_offset = self.reader.read_u64_le().await?; + + Ok(Header { + characteristics, + data_offset, + data_size, + index_offset, + }) + } + + pub async fn read_v1_header(&mut self) -> Result { + Ok(car::v1::read_header(&mut self.reader).await?) + } + + pub async fn read_block(&mut self) -> Result<(Cid, Vec), Error> { + Ok(car::v1::read_block(&mut self.reader).await?) + } + + pub async fn read_index(&mut self) -> Result { + read_index(&mut self.reader).await + } + + /// Get a mutable reference to the inner reader. + pub fn get_inner_mut(&mut self) -> &mut R { + &mut self.reader + } +} + +#[cfg(test)] +mod tests { + + use ipld_core::cid::Cid; + use sha2::Sha256; + use tokio::{fs::File, io::AsyncSeekExt}; + + use crate::{ + car::generate_multihash, + car::v2::{index::Index, reader::Reader, Error, PRAGMA}, + car::{self, v1}, + }; + + #[tokio::test] + async fn pragma() { + let file = File::open("tests/fixtures/car_v2/lorem.car").await.unwrap(); + let mut reader = Reader::new(file); + let pragma = reader.read_pragma().await.unwrap(); + assert_eq!(pragma, PRAGMA); + } + + #[tokio::test] + async fn header() { + let file = File::open("tests/fixtures/car_v2/lorem.car").await.unwrap(); + let mut reader = Reader::new(file); + let _ = reader.read_pragma().await.unwrap(); + let header = reader.read_header().await.unwrap(); + + // `car inspect tests/fixtures/car_v2/lorem.car` to get the values + assert_eq!(header.characteristics.bits(), 0); + assert_eq!(header.data_offset, 51); + assert_eq!(header.data_size, 7661); + assert_eq!(header.index_offset, 7712); + } + + #[tokio::test] + async fn inner_car() { + // Read the original file to get the multihash + let file_contents = tokio::fs::read("tests/fixtures/original/lorem.txt") + .await + .unwrap(); + let contents_multihash = generate_multihash::(&file_contents); + let contents_cid = Cid::new_v1(0x55, contents_multihash); + + let file = File::open("tests/fixtures/car_v2/lorem.car").await.unwrap(); + let mut reader = Reader::new(file); + let _ = reader.read_pragma().await.unwrap(); + let header = reader.read_header().await.unwrap(); + + let inner = reader.get_inner_mut(); + inner + .seek(std::io::SeekFrom::Start(header.data_offset)) + .await + .unwrap(); + + let v1_header = reader.read_v1_header().await.unwrap(); + assert_eq!(v1_header.version, 1); + assert_eq!(v1_header.roots, vec![contents_cid]); + + loop { + match reader.read_block().await { + Ok((cid, _)) => println!("{:?}", cid), + else_ => { + assert!(matches!( + else_, + Err(Error::CarV1Error(car::v1::Error::IoError(_))) + )); + break; + } + } + } + } + + #[tokio::test] + async fn indexes() { + // Read the original file to get the multihash + let file_contents = tokio::fs::read("tests/fixtures/original/lorem.txt") + .await + .unwrap(); + let contents_multihash = generate_multihash::(&file_contents); + + let file = File::open("tests/fixtures/car_v2/lorem.car").await.unwrap(); + let mut reader = Reader::new(file); + let _ = reader.read_pragma().await.unwrap(); + let header = reader.read_header().await.unwrap(); + + let inner = reader.get_inner_mut(); + inner + .seek(std::io::SeekFrom::Start(header.index_offset)) + .await + .unwrap(); + + let index = reader.read_index().await.unwrap(); + assert!(matches!(index, Index::MultihashIndexSorted(_))); + if let Index::MultihashIndexSorted(mh) = index { + assert_eq!(mh.0.len(), 1); + assert!(mh.0.contains_key(&0x12)); + let fst = &mh.0[&0x12].0; + assert_eq!(fst.len(), 1); + assert_eq!(fst[0].count, 1); + assert_eq!(fst[0].width, 40); + assert_eq!(fst[0].entries.len(), 1); + assert_eq!(fst[0].entries[0].offset, 59); + assert_eq!(fst[0].entries[0].digest, contents_multihash.digest()); + } + } + + #[tokio::test] + async fn full_file_lorem() { + // Read the original file to get the multihash + let file_contents = tokio::fs::read("tests/fixtures/original/lorem.txt") + .await + .unwrap(); + let contents_multihash = generate_multihash::(&file_contents); + let contents_cid = Cid::new_v1(0x55, contents_multihash); + + let file = File::open("tests/fixtures/car_v2/lorem.car").await.unwrap(); + let mut reader = Reader::new(file); + let pragma = reader.read_pragma().await.unwrap(); + assert_eq!(pragma, PRAGMA); + + let header = reader.read_header().await.unwrap(); + // `car inspect tests/fixtures/car_v2/lorem.car` to get the values + assert_eq!(header.characteristics.bits(), 0); + assert_eq!(header.data_offset, 51); + assert_eq!(header.data_size, 7661); + assert_eq!(header.index_offset, 7712); + + let v1_header = reader.read_v1_header().await.unwrap(); + assert_eq!(v1_header.version, 1); + assert_eq!(v1_header.roots, vec![contents_cid]); + + loop { + match reader.read_block().await { + Ok((cid, _)) => { + // Kinda hacky, but better than doing a seek later on + let position = reader.get_inner_mut().stream_position().await.unwrap(); + let data_end = header.data_offset + header.data_size; + if position >= data_end { + break; + } + println!("{:?}", cid); + } + else_ => { + assert!(matches!( + else_, + Err(Error::CarV1Error(car::v1::Error::IoError(_))) + )); + break; + } + } + } + + let index = reader.read_index().await.unwrap(); + assert!(matches!(index, Index::MultihashIndexSorted(_))); + if let Index::MultihashIndexSorted(mh) = index { + assert_eq!(mh.0.len(), 1); + assert!(mh.0.contains_key(&0x12)); + let fst = &mh.0[&0x12].0; + assert_eq!(fst.len(), 1); + assert_eq!(fst[0].count, 1); + assert_eq!(fst[0].width, 40); + assert_eq!(fst[0].entries.len(), 1); + assert_eq!(fst[0].entries[0].offset, 59); + assert_eq!(fst[0].entries[0].digest, contents_multihash.digest()); + } + } + + #[tokio::test] + async fn full_file_glenda() { + let file = File::open("tests/fixtures/car_v2/spaceglenda.car") + .await + .unwrap(); + let mut reader = Reader::new(file); + let pragma = reader.read_pragma().await.unwrap(); + assert_eq!(pragma, PRAGMA); + + let header = reader.read_header().await.unwrap(); + // `car inspect tests/fixtures/car_v2/lorem.car` to get the values + assert_eq!(header.characteristics.bits(), 0); + assert_eq!(header.data_offset, 51); + assert_eq!(header.data_size, 654402); + assert_eq!(header.index_offset, 654453); + + let v1_header = reader.read_v1_header().await.unwrap(); + assert_eq!(v1_header.version, 1); + assert_eq!(v1_header.roots.len(), 1); + assert_eq!( + v1_header.roots[0] + .to_string_of_base(ipld_core::cid::multibase::Base::Base32Lower) + .unwrap(), + // Taken from `car inspect tests/fixtures/car_v2/spaceglenda.car` + "bafybeiefli7iugocosgirzpny4t6yxw5zehy6khtao3d252pbf352xzx5q" + ); + + loop { + match reader.read_block().await { + Ok((cid, _)) => { + // Kinda hacky, but better than doing a seek later on + let position = reader.get_inner_mut().stream_position().await.unwrap(); + let data_end = header.data_offset + header.data_size; + if position >= data_end { + break; + } + } + else_ => { + // With the length check above this branch should actually be unreachable + assert!(matches!( + else_, + Err(Error::CarV1Error(car::v1::Error::IoError(_))) + )); + break; + } + } + } + + let index = reader.read_index().await.unwrap(); + assert!(matches!(index, Index::MultihashIndexSorted(_))); + if let Index::MultihashIndexSorted(mh) = index { + assert_eq!(mh.0.len(), 1); + assert!(mh.0.contains_key(&0x12)); + let fst = &mh.0[&0x12].0; + assert_eq!(fst.len(), 1); + assert_eq!(fst[0].count, 4); + assert_eq!(fst[0].width, 40); + assert_eq!(fst[0].entries.len(), 4); + } + } +} diff --git a/storage/file-storage/tests/fixtures/car_v1/lorem.car b/storage/file-storage/tests/fixtures/car_v1/lorem.car new file mode 100644 index 0000000000000000000000000000000000000000..1b38092df84d49cd3f1eb51d22aea47dfb5d5e60 GIT binary patch literal 7661 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

hLVlJ$ZLZ!1NunfDy_{@==a?2`7!e@p7$ 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 z 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∨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 literal 0 HcmV?d00001 diff --git a/storage/file-storage/tests/fixtures/car_v2/spaceglenda.car b/storage/file-storage/tests/fixtures/car_v2/spaceglenda.car new file mode 100644 index 0000000000000000000000000000000000000000..4e2f1cf7e94856b6ad45752865489f1de1363f67 GIT binary patch literal 654643 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

{&6 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

UF9%8P^k4P3%1E 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 VU)n2o3f<3;UwR)O(Dt9<{tva@_uT*h literal 0 HcmV?d00001 diff --git a/storage/file-storage/tests/fixtures/lorem.txt b/storage/file-storage/tests/fixtures/original/lorem.txt similarity index 100% rename from storage/file-storage/tests/fixtures/lorem.txt rename to storage/file-storage/tests/fixtures/original/lorem.txt diff --git a/storage/file-storage/tests/fixtures/lorem_1024.txt b/storage/file-storage/tests/fixtures/original/lorem_1024.txt similarity index 100% rename from storage/file-storage/tests/fixtures/lorem_1024.txt rename to storage/file-storage/tests/fixtures/original/lorem_1024.txt diff --git a/storage/file-storage/tests/fixtures/lorem_4096_dup.txt b/storage/file-storage/tests/fixtures/original/lorem_4096_dup.txt similarity index 100% rename from storage/file-storage/tests/fixtures/lorem_4096_dup.txt rename to storage/file-storage/tests/fixtures/original/lorem_4096_dup.txt diff --git a/storage/file-storage/tests/fixtures/original/spaceglenda.jpg b/storage/file-storage/tests/fixtures/original/spaceglenda.jpg new file mode 100644 index 0000000000000000000000000000000000000000..d2bab4d66b840f418f8c57f422178fbc90272493 GIT binary patch literal 654030 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 z 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�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¥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 Date: Tue, 21 May 2024 10:46:48 +0100 Subject: [PATCH 07/63] fix(file-storage): remove chunker --- storage/file-storage/src/car/chunker.rs | 122 ------------------------ 1 file changed, 122 deletions(-) delete mode 100644 storage/file-storage/src/car/chunker.rs diff --git a/storage/file-storage/src/car/chunker.rs b/storage/file-storage/src/car/chunker.rs deleted file mode 100644 index 176f07164..000000000 --- a/storage/file-storage/src/car/chunker.rs +++ /dev/null @@ -1,122 +0,0 @@ -use std::io::{self, BufRead}; - -use fallible_iterator::FallibleIterator; - -struct FixedChunker { - reader: R, - buffer: Option>, -} - -impl FixedChunker { - pub fn new(size: usize, reader: R) -> Self { - Self { - reader, - buffer: Some(vec![0; size]), - } - } -} - -impl FallibleIterator for FixedChunker { - type Item = (Vec, usize); - type Error = io::Error; - - fn next(&mut self) -> Result, Self::Error> { - if let Some(inner) = &mut self.buffer { - let n_read = self.reader.read(inner)?; - - match n_read { - 0 => return Ok(None), - n if n == inner.len() => return Ok(Some((inner.to_vec(), n_read))), - _ => { - if let Some(inner) = &mut self.buffer { - inner.truncate(n_read); - } - return Ok(self.buffer.take().map(|v| (v, n_read))); - } - } - } - Ok(None) - } -} - -#[cfg(test)] -mod tests { - use std::{fs::File, io::BufReader}; - - use fallible_iterator::FallibleIterator; - - use super::FixedChunker; - - #[test] - fn read_1024() { - const CHUNK_SIZE: usize = 1024; - const TEST_PATH: &str = "tests/fixtures/lorem_1024.txt"; - let read_file = std::fs::read(TEST_PATH).unwrap(); - assert_eq!(read_file.len(), CHUNK_SIZE); // sanity check - - let file = File::open(TEST_PATH).unwrap(); - let buffered_file = BufReader::new(file); - let mut chunker = FixedChunker::new(CHUNK_SIZE, buffered_file); - - let (chunk, size) = chunker.next().unwrap().unwrap(); - assert_eq!(size, CHUNK_SIZE); - assert_eq!(read_file, chunk); - - let chunk = chunker.next().unwrap(); - assert_eq!(chunk, None); - } - - #[test] - fn read_4096() { - const CHUNK_SIZE: usize = 1024; - const TEST_PATH: &str = "tests/fixtures/lorem_4096_dup.txt"; - let read_file = std::fs::read(TEST_PATH).unwrap(); - assert_eq!(read_file.len(), CHUNK_SIZE * 4); // sanity check - - let file = File::open(TEST_PATH).unwrap(); - let buffered_file = BufReader::new(file); - let mut chunker = FixedChunker::new(CHUNK_SIZE, buffered_file); - - for idx in 0..4 { - let (chunk, size) = chunker.next().unwrap().unwrap(); - assert_eq!(size, CHUNK_SIZE); - assert_eq!( - read_file[(CHUNK_SIZE * idx)..(CHUNK_SIZE * (idx + 1))], - chunk - ); - } - - let chunk = chunker.next().unwrap(); - assert_eq!(chunk, None); - } - - #[test] - fn read_7564() { - const FILE_SIZE: usize = 7564; - const CHUNK_SIZE: usize = 1024; - const TEST_PATH: &str = "tests/fixtures/lorem.txt"; - let read_file = std::fs::read(TEST_PATH).unwrap(); - assert_eq!(read_file.len(), FILE_SIZE); // sanity check - - let file = File::open(TEST_PATH).unwrap(); - let buffered_file = BufReader::new(file); - let mut chunker = FixedChunker::new(CHUNK_SIZE, buffered_file); - - let expected_n_chunks = FILE_SIZE / CHUNK_SIZE; // this is actually 7 - for idx in 0..expected_n_chunks { - let (chunk, size) = chunker.next().unwrap().unwrap(); - assert_eq!(size, CHUNK_SIZE); - assert_eq!( - read_file[(CHUNK_SIZE * idx)..(CHUNK_SIZE * (idx + 1))], - chunk - ); - } - - let (chunk, size) = chunker.next().unwrap().unwrap(); - assert_eq!(size, FILE_SIZE - (expected_n_chunks * CHUNK_SIZE)); - assert_eq!(read_file[7 * CHUNK_SIZE..], chunk); - - let chunk = chunker.next().unwrap(); - assert_eq!(chunk, None); - } -} From ee26dec93921c58ea6384d55f8da007d8d7ef124 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jose=CC=81=20Duarte?= Date: Tue, 21 May 2024 10:55:15 +0100 Subject: [PATCH 08/63] fix(file-storage): unify Error --- storage/file-storage/src/car/mod.rs | 26 +++++++++++++++++++++-- storage/file-storage/src/car/v1/mod.rs | 15 ------------- storage/file-storage/src/car/v1/reader.rs | 14 ++++++------ storage/file-storage/src/car/v1/writer.rs | 4 +++- storage/file-storage/src/car/v2/index.rs | 2 +- storage/file-storage/src/car/v2/mod.rs | 17 ++++----------- storage/file-storage/src/car/v2/reader.rs | 20 +++++------------ 7 files changed, 44 insertions(+), 54 deletions(-) diff --git a/storage/file-storage/src/car/mod.rs b/storage/file-storage/src/car/mod.rs index 4d63b4978..23a0b7e73 100644 --- a/storage/file-storage/src/car/mod.rs +++ b/storage/file-storage/src/car/mod.rs @@ -6,8 +6,6 @@ mod v2; use ipld_core::cid::multihash::Multihash; use sha2::{Digest, Sha256}; -// TODO(@jmg-duarte,20/05/2024): move and unify the Error here - /// Trait to ease implementing generic multihash generation. pub trait MultihashCode { /// Multihash code as defined in the [specification](https://github.com/multiformats/multicodec/blob/c954a787dc6a17d099653e5f90d26fbd177d2074/table.csv). @@ -28,3 +26,27 @@ where impl MultihashCode for Sha256 { const CODE: u64 = 0x12; } + +#[derive(Debug, thiserror::Error)] +pub enum Error { + #[error(transparent)] + CodecError(#[from] serde_ipld_dagcbor::error::CodecError), + + #[error(transparent)] + IoError(#[from] tokio::io::Error), + + #[error(transparent)] + CidError(#[from] ipld_core::cid::Error), + + #[error(transparent)] + MultihashError(#[from] ipld_core::cid::multihash::Error), + + #[error("trying to read V2")] + CarV2Error, + + /// Unknown type of index. Supported indexes are + /// [`MultiWidthIndex`](`crate::car::v2::MultiWidthIndex`) and + /// [`MultihashIndexSorted`](`crate::car::v2::MultihashIndexSorted`). + #[error("unknown index type {0}")] + UnknownIndexError(u64), +} diff --git a/storage/file-storage/src/car/v1/mod.rs b/storage/file-storage/src/car/v1/mod.rs index 7ec7355ae..563c9eeef 100644 --- a/storage/file-storage/src/car/v1/mod.rs +++ b/storage/file-storage/src/car/v1/mod.rs @@ -4,7 +4,6 @@ mod writer; use ipld_core::cid::Cid; use serde::{Deserialize, Serialize}; -use thiserror::Error; pub use crate::car::v1::reader::Reader; pub use crate::car::v1::writer::Writer; @@ -12,20 +11,6 @@ pub use crate::car::v1::writer::Writer; pub(crate) use crate::car::v1::reader::{read_block, read_header}; pub(crate) use crate::car::v1::writer::{write_block, write_header}; -#[derive(Debug, Error)] -pub enum Error { - #[error(transparent)] - CodecError(#[from] serde_ipld_dagcbor::error::CodecError), - #[error(transparent)] - IoError(#[from] tokio::io::Error), - #[error(transparent)] - CidError(#[from] ipld_core::cid::Error), - #[error(transparent)] - MultihashError(#[from] ipld_core::cid::multihash::Error), - #[error("trying to read V2")] - CarV2Error, -} - /// Low-level CARv1 header. #[derive(Debug, Serialize, Deserialize)] pub struct Header { diff --git a/storage/file-storage/src/car/v1/reader.rs b/storage/file-storage/src/car/v1/reader.rs index 51197025d..b6f462d63 100644 --- a/storage/file-storage/src/car/v1/reader.rs +++ b/storage/file-storage/src/car/v1/reader.rs @@ -11,11 +11,10 @@ use integer_encoding::{VarIntAsyncReader, VarIntReader}; use serde_ipld_dagcbor::codec::DagCborCodec; use tokio::io::{AsyncRead, AsyncReadExt}; -use crate::{ - car::v1::{Error, Header}, - car::v2::PRAGMA, -}; +use crate::car::{v1::Header, v2::PRAGMA, Error}; +// `bytes::Buf` might be more useful here +// https://docs.rs/bytes/1.6.0/bytes/buf/trait.Buf.html fn read_cid_v1(cursor: &mut Cursor) -> Result where B: AsRef<[u8]>, @@ -149,9 +148,10 @@ mod tests { use sha2::Sha256; use tokio::{fs::File, io::BufReader}; - use crate::{ - car::generate_multihash, - car::v1::{self, reader::read_cid, Error, Reader}, + use crate::car::{ + generate_multihash, + v1::{self, reader::read_cid, Reader}, + Error, }; const RAW_CODEC: u64 = 0x55; diff --git a/storage/file-storage/src/car/v1/writer.rs b/storage/file-storage/src/car/v1/writer.rs index 5769b42c8..5e4d22a1b 100644 --- a/storage/file-storage/src/car/v1/writer.rs +++ b/storage/file-storage/src/car/v1/writer.rs @@ -4,7 +4,9 @@ use integer_encoding::VarIntAsyncWriter; use serde_ipld_dagcbor::codec::DagCborCodec; use tokio::io::{AsyncWrite, AsyncWriteExt}; -pub use crate::car::v1::{Error, Header}; +use crate::car::Error; + +pub use crate::car::v1::Header; /// Write a CARv1 header to the provider writer. pub(crate) async fn write_header(writer: &mut W, header: &Header) -> Result<(), Error> diff --git a/storage/file-storage/src/car/v2/index.rs b/storage/file-storage/src/car/v2/index.rs index 64cb95c6d..72f5d0005 100644 --- a/storage/file-storage/src/car/v2/index.rs +++ b/storage/file-storage/src/car/v2/index.rs @@ -3,7 +3,7 @@ use std::collections::BTreeMap; use integer_encoding::VarIntAsyncReader; use tokio::io::{AsyncRead, AsyncReadExt}; -use crate::car::v2::Error; +use crate::car::Error; pub const INDEX_SORTED_CODE: u64 = 0x0400; pub const MULTIHASH_INDEX_SORTED_CODE: u64 = 0x0401; diff --git a/storage/file-storage/src/car/v2/mod.rs b/storage/file-storage/src/car/v2/mod.rs index 02506e14d..1caa0b9ba 100644 --- a/storage/file-storage/src/car/v2/mod.rs +++ b/storage/file-storage/src/car/v2/mod.rs @@ -1,14 +1,15 @@ mod index; mod reader; +pub use index::{Index, MultiWidthIndex, MultihashIndexSorted}; + use bitflags::bitflags; use byteorder::{LittleEndian, WriteBytesExt}; use ipld_core::cid::Cid; use tokio::io::AsyncWrite; -use tokio::io::{AsyncRead, AsyncReadExt, AsyncWriteExt}; +use tokio::io::AsyncWriteExt; -use crate::car::v2::reader::Reader; -use crate::car::{self, v1}; +use crate::car::{self, Error}; /// The pragma for a CARv2. This is also a valid CARv1 header, with version 2 and no root CIDs. pub const PRAGMA: [u8; 11] = [ @@ -19,16 +20,6 @@ pub const PRAGMA: [u8; 11] = [ 0x02, // uint(2) ]; -#[derive(Debug, thiserror::Error)] -pub enum Error { - #[error(transparent)] - IoError(#[from] std::io::Error), - #[error(transparent)] - CarV1Error(#[from] car::v1::Error), - #[error("unknown index type {0}")] - UnknownIndexError(u64), -} - bitflags! { /// Characteristics of the enclosed data. pub struct Characteristics: u128 { diff --git a/storage/file-storage/src/car/v2/reader.rs b/storage/file-storage/src/car/v2/reader.rs index a077bf895..f6716702e 100644 --- a/storage/file-storage/src/car/v2/reader.rs +++ b/storage/file-storage/src/car/v2/reader.rs @@ -6,10 +6,9 @@ use tokio::io::{AsyncRead, AsyncReadExt, AsyncWriteExt}; use tokio::io::{AsyncSeek, AsyncWrite}; use crate::car; -use crate::car::v1::{self}; -use crate::car::v2::{Characteristics, Error, Header, PRAGMA}; - use crate::car::v2::index::Index; +use crate::car::v2::{Characteristics, Header, PRAGMA}; +use crate::car::Error; use super::index::read_index; @@ -137,10 +136,7 @@ mod tests { match reader.read_block().await { Ok((cid, _)) => println!("{:?}", cid), else_ => { - assert!(matches!( - else_, - Err(Error::CarV1Error(car::v1::Error::IoError(_))) - )); + assert!(matches!(else_, Err(Error::IoError(_)))); break; } } @@ -218,10 +214,7 @@ mod tests { println!("{:?}", cid); } else_ => { - assert!(matches!( - else_, - Err(Error::CarV1Error(car::v1::Error::IoError(_))) - )); + assert!(matches!(else_, Err(Error::IoError(_)))); break; } } @@ -281,10 +274,7 @@ mod tests { } else_ => { // With the length check above this branch should actually be unreachable - assert!(matches!( - else_, - Err(Error::CarV1Error(car::v1::Error::IoError(_))) - )); + assert!(matches!(else_, Err(Error::IoError(_)))); break; } } From e6874fb48eb6b1a40c932e7d2d4f5cd9a7a1e107 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jose=CC=81=20Duarte?= Date: Tue, 21 May 2024 16:24:01 +0100 Subject: [PATCH 09/63] feat(file-storage): index writer --- storage/file-storage/src/car/mod.rs | 16 +- storage/file-storage/src/car/v2/index.rs | 310 +++++++++++++++++++++-- 2 files changed, 309 insertions(+), 17 deletions(-) diff --git a/storage/file-storage/src/car/mod.rs b/storage/file-storage/src/car/mod.rs index 23a0b7e73..d829c2a30 100644 --- a/storage/file-storage/src/car/mod.rs +++ b/storage/file-storage/src/car/mod.rs @@ -3,8 +3,8 @@ mod v1; mod v2; +use digest::Digest; use ipld_core::cid::multihash::Multihash; -use sha2::{Digest, Sha256}; /// Trait to ease implementing generic multihash generation. pub trait MultihashCode { @@ -23,10 +23,14 @@ where Multihash::wrap(H::CODE, &hashed_bytes).unwrap() } -impl MultihashCode for Sha256 { +impl MultihashCode for sha2::Sha256 { const CODE: u64 = 0x12; } +impl MultihashCode for sha2::Sha512 { + const CODE: u64 = 0x13; +} + #[derive(Debug, thiserror::Error)] pub enum Error { #[error(transparent)] @@ -49,4 +53,12 @@ pub enum Error { /// [`MultihashIndexSorted`](`crate::car::v2::MultihashIndexSorted`). #[error("unknown index type {0}")] UnknownIndexError(u64), + + /// Digest does not match the expected length. + #[error("digest has length {received}, instead of {expected}")] + NonMatchingDigestError { expected: usize, received: usize }, + + /// Cannot know width or count from an empty vector. + #[error("cannot create an index out of an empty `Vec`")] + EmptyIndexError, } diff --git a/storage/file-storage/src/car/v2/index.rs b/storage/file-storage/src/car/v2/index.rs index 72f5d0005..ff9717d44 100644 --- a/storage/file-storage/src/car/v2/index.rs +++ b/storage/file-storage/src/car/v2/index.rs @@ -1,7 +1,8 @@ -use std::collections::BTreeMap; +use std::{collections::BTreeMap, mem::offset_of}; -use integer_encoding::VarIntAsyncReader; -use tokio::io::{AsyncRead, AsyncReadExt}; +use digest::consts::U64; +use integer_encoding::{VarIntAsyncReader, VarIntAsyncWriter}; +use tokio::io::{AsyncRead, AsyncReadExt, AsyncWrite, AsyncWriteExt}; use crate::car::Error; @@ -25,41 +26,183 @@ pub struct IndexEntry { pub offset: u64, } +impl IndexEntry { + /// Construct a new [`IndexEntry`]. + fn new(digest: Vec, offset: u64) -> Self { + Self { digest, offset } + } +} + /// An index containing a single digest length. -#[derive(Debug)] +#[derive(Debug, PartialEq, Eq)] pub struct SingleWidthIndex { /// The hash digest and the respective offset length. pub width: u32, /// The number of index entries. + /// It is serialized as the length of all entries in bytes + /// (i.e. `self.count * self.width`). + /// + /// See `go-car`'s source code for more information: + /// https://github.com/ipld/go-car/blob/45b81c1cc5117b3340dfdb025afeca90bfbe8d86/v2/index/indexsorted.go#L29 pub count: u64, /// The index entries. pub entries: Vec, } +impl SingleWidthIndex { + /// Construct a new [`SingleWidthIndex`]. + /// + /// Notes: + /// * The `digest_width` should not account for the offset length. + /// * This function sorts the `entries`. + fn new(digest_width: u32, count: u64, mut entries: Vec) -> Self { + entries.sort_by(|fst, snd| fst.digest.cmp(&snd.digest)); + Self { + width: digest_width + 8, // digest_width + offset len + count, + entries, + } + } +} + +impl TryFrom> for SingleWidthIndex { + type Error = Error; + + /// Performs the conversion, validating that all indexes have the same width. + fn try_from(value: Vec) -> Result { + if value.is_empty() { + return Err(Error::EmptyIndexError); + } + let width = value[0].digest.len(); + let count = value.len(); + for entry in &value[1..] { + if entry.digest.len() != width { + return Err(Error::NonMatchingDigestError { + expected: width, + received: entry.digest.len(), + }); + } + } + Ok(Self::new(width as u32, count as u64, value)) + } +} + /// An index containing hash digests of multiple lengths. /// /// To find a given index entry, first find the right index width, /// and then find the hash to the data block. /// /// For more details, read the [`Format 0x0400: IndexSorted`](https://ipld.io/specs/transport/car/carv2/#format-0x0400-indexsorted) section in the CARv2 specification. -#[derive(Debug)] +#[derive(Debug, PartialEq, Eq)] pub struct MultiWidthIndex(pub Vec); +impl From for MultiWidthIndex { + fn from(value: SingleWidthIndex) -> Self { + Self(vec![value]) + } +} + +impl From> for MultiWidthIndex { + fn from(value: Vec) -> Self { + Self(value) + } +} + /// An index mapping Multihash codes to [`MultiWidthIndex`]. /// /// For more details, read the [`Format 0x0401: MultihashIndexSorted`](https://ipld.io/specs/transport/car/carv2/#format-0x0401-multihashindexsorted) section in the CARv2 specification. -#[derive(Debug)] +#[derive(Debug, PartialEq, Eq)] pub struct MultihashIndexSorted(pub BTreeMap); +impl From> for MultihashIndexSorted { + fn from(value: BTreeMap) -> Self { + Self(value) + } +} + /// CARv2 index. -#[derive(Debug)] +#[derive(Debug, PartialEq, Eq)] pub enum Index { IndexSorted(MultiWidthIndex), MultihashIndexSorted(MultihashIndexSorted), } +pub(crate) async fn write_index(mut writer: W, index: &Index) -> Result<(), Error> +where + W: AsyncWrite + Unpin, +{ + match index { + Index::IndexSorted(index) => { + writer.write_varint_async(INDEX_SORTED_CODE).await?; + write_index_sorted(&mut writer, index).await?; + } + Index::MultihashIndexSorted(index) => { + writer + .write_varint_async(MULTIHASH_INDEX_SORTED_CODE) + .await?; + write_multihash_index_sorted(&mut writer, index).await? + } + } + Ok(()) +} + +pub(crate) async fn write_multihash_index_sorted( + mut writer: W, + index: &MultihashIndexSorted, +) -> Result<(), Error> +where + W: AsyncWrite + Unpin, +{ + writer.write_i32_le(index.0.len() as i32).await?; + for (hash_code, index) in index.0.iter() { + writer.write_u64_le(*hash_code).await?; + write_index_sorted(&mut writer, index).await?; + } + Ok(()) +} + +pub(crate) async fn write_index_sorted( + mut writer: W, + index: &MultiWidthIndex, +) -> Result<(), Error> +where + W: AsyncWrite + Unpin, +{ + writer.write_i32_le(index.0.len() as i32).await?; + for idx in &index.0 { + write_single_width_index(&mut writer, idx).await?; + } + Ok(()) +} + +pub(crate) async fn write_single_width_index( + mut writer: W, + index: &SingleWidthIndex, +) -> Result<(), Error> +where + W: AsyncWrite + Unpin, +{ + writer.write_u32_le(index.width).await?; + writer + .write_u64_le(index.count * (index.width as u64)) + .await?; + for entry in &index.entries { + write_index_entry(&mut writer, entry).await?; + } + Ok(()) +} + +pub(crate) async fn write_index_entry(mut writer: W, entry: &IndexEntry) -> Result<(), Error> +where + W: AsyncWrite + Unpin, +{ + writer.write_all(&entry.digest).await?; + writer.write_u64_le(entry.offset).await?; + Ok(()) +} + pub(crate) async fn read_index(mut reader: R) -> Result where R: AsyncRead + Unpin, @@ -143,17 +286,44 @@ where #[cfg(test)] mod tests { - use std::collections::HashMap; + use std::{ + collections::{BTreeMap, HashMap}, + io::Cursor, + }; - use crate::{ - car::v1::read_block, - car::v2::index::read_index, - car::{generate_multihash, MultihashCode}, + use crate::car::{ + generate_multihash, + v1::read_block, + v2::index::{ + read_index, read_index_entry, read_index_sorted, read_multihash_index_sorted, + read_single_width_index, write_index, write_index_entry, write_index_sorted, + write_multihash_index_sorted, write_single_width_index, Index, IndexEntry, + MultiWidthIndex, MultihashIndexSorted, SingleWidthIndex, + }, + MultihashCode, }; - use super::{read_multihash_index_sorted, Index}; - use sha2::{Digest, Sha256}; - use tokio::{fs::File, io::AsyncSeekExt}; + use digest::generic_array::GenericArray; + use rand::{random, Fill, Rng}; + use sha2::{Digest, Sha256, Sha512}; + use tokio::{ + fs::File, + io::{AsyncReadExt, AsyncSeekExt, BufReader, ReadBuf}, + }; + + fn generate_single_width_index(count: u64) -> SingleWidthIndex + where + H: Digest, + { + let mut entries = vec![]; + let mut data = vec![0u8; ::output_size()]; + for idx in 0..count { + data.fill_with(random); + let digest = H::digest(&data).to_vec(); + entries.push(IndexEntry::new(digest, idx)); + } + SingleWidthIndex::try_from(entries).unwrap() + } #[tokio::test] async fn multihash_index_sorted_lorem() { @@ -268,4 +438,114 @@ mod tests { assert_eq!(entry.digest, *digest); } } + + #[tokio::test] + async fn rountrip_index_entry() { + let mut data = [0u8; 32]; + rand::thread_rng().fill(&mut data); + let digest = Sha256::digest(data).to_vec(); + let entry = IndexEntry { + digest: digest.clone(), + offset: 42, + }; + + let mut buffer = vec![]; + write_index_entry(&mut buffer, &entry).await.unwrap(); + + let mut reader = Cursor::new(buffer); + let result = read_index_entry(&mut reader, 32).await.unwrap(); + assert_eq!(entry.digest, result.digest); + assert_eq!(entry.offset, result.offset); + } + + #[tokio::test] + async fn roundtrip_single_width_index() { + let single_width = generate_single_width_index::(5); + + let mut buffer = vec![]; + write_single_width_index(&mut buffer, &single_width) + .await + .unwrap(); + let mut reader = Cursor::new(buffer); + let index = read_single_width_index(&mut reader).await.unwrap(); + assert_eq!(single_width, index); + } + + #[tokio::test] + async fn roundtrip_multiwidth_index() { + let index = MultiWidthIndex(vec![ + generate_single_width_index::(5), + generate_single_width_index::(5), + ]); + + let mut buffer = vec![]; + write_index_sorted(&mut buffer, &index).await.unwrap(); + + let mut reader = Cursor::new(buffer); + let result = read_index_sorted(&mut reader).await.unwrap(); + + assert_eq!(index, result); + } + + #[tokio::test] + async fn roundtrip_multihash_index() { + let mut mapping = BTreeMap::new(); + mapping.insert( + Sha256::CODE, + generate_single_width_index::(5).into(), + ); + mapping.insert( + Sha512::CODE, + generate_single_width_index::(5).into(), + ); + let index = MultihashIndexSorted(mapping); + + let mut buffer = vec![]; + write_multihash_index_sorted(&mut buffer, &index) + .await + .unwrap(); + + let mut reader = Cursor::new(buffer); + let result = read_multihash_index_sorted(&mut reader).await.unwrap(); + + assert_eq!(index, result); + } + + #[tokio::test] + async fn roundtrip_index_multihash() { + let mut mapping = BTreeMap::new(); + mapping.insert( + Sha256::CODE, + generate_single_width_index::(5).into(), + ); + mapping.insert( + Sha512::CODE, + generate_single_width_index::(5).into(), + ); + let index = Index::MultihashIndexSorted(MultihashIndexSorted(mapping)); + + let mut buffer = vec![]; + write_index(&mut buffer, &index).await.unwrap(); + + let mut reader = Cursor::new(buffer); + let result = read_index(&mut reader).await.unwrap(); + + assert_eq!(index, result); + } + + #[tokio::test] + async fn roundtrip_index_sorted() { + let index = Index::IndexSorted(MultiWidthIndex(vec![ + generate_single_width_index::(5), + generate_single_width_index::(5), + ])); + + let mut buffer = vec![]; + write_index(&mut buffer, &index).await.unwrap(); + + let mut reader = Cursor::new(buffer); + let result = read_index(&mut reader).await.unwrap(); + + assert_eq!(index, result); + } } From e3d19e271bbfd1572ae567aeed7404db6d909452 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jose=CC=81=20Duarte?= Date: Tue, 21 May 2024 16:28:15 +0100 Subject: [PATCH 10/63] fix(file-storage): Characteristics::new --- storage/file-storage/src/car/v2/mod.rs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/storage/file-storage/src/car/v2/mod.rs b/storage/file-storage/src/car/v2/mod.rs index 1caa0b9ba..a87e2b5a3 100644 --- a/storage/file-storage/src/car/v2/mod.rs +++ b/storage/file-storage/src/car/v2/mod.rs @@ -30,7 +30,11 @@ bitflags! { impl Characteristics { /// Create a new [`Characteristics`]. pub fn new(fully_indexed: bool) -> Self { - Self::FULLY_INDEXED + if fully_indexed { + Self::FULLY_INDEXED + } else { + Self::empty() + } } /// Check whether the `fully-indexed` characteristic is set. From b2abf9a34f1bf214d304524337cbc01b91508765 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jose=CC=81=20Duarte?= Date: Tue, 21 May 2024 16:30:43 +0100 Subject: [PATCH 11/63] style: cargo fix && cargo +nightly fmt --- storage/file-storage/src/car/v1/mod.rs | 11 +++++----- storage/file-storage/src/car/v1/reader.rs | 4 +--- storage/file-storage/src/car/v1/writer.rs | 15 ++++++-------- storage/file-storage/src/car/v2/index.rs | 19 ++++++++--------- storage/file-storage/src/car/v2/mod.rs | 11 +++++----- storage/file-storage/src/car/v2/reader.rs | 25 ++++++++++------------- 6 files changed, 37 insertions(+), 48 deletions(-) diff --git a/storage/file-storage/src/car/v1/mod.rs b/storage/file-storage/src/car/v1/mod.rs index 563c9eeef..ec4fed86b 100644 --- a/storage/file-storage/src/car/v1/mod.rs +++ b/storage/file-storage/src/car/v1/mod.rs @@ -2,14 +2,13 @@ mod reader; mod writer; use ipld_core::cid::Cid; - use serde::{Deserialize, Serialize}; -pub use crate::car::v1::reader::Reader; -pub use crate::car::v1::writer::Writer; - -pub(crate) use crate::car::v1::reader::{read_block, read_header}; -pub(crate) use crate::car::v1::writer::{write_block, write_header}; +pub use crate::car::v1::{reader::Reader, writer::Writer}; +pub(crate) use crate::car::v1::{ + reader::{read_block, read_header}, + writer::{write_block, write_header}, +}; /// Low-level CARv1 header. #[derive(Debug, Serialize, Deserialize)] diff --git a/storage/file-storage/src/car/v1/reader.rs b/storage/file-storage/src/car/v1/reader.rs index b6f462d63..e75897bb0 100644 --- a/storage/file-storage/src/car/v1/reader.rs +++ b/storage/file-storage/src/car/v1/reader.rs @@ -1,13 +1,11 @@ use std::io::{Cursor, Seek}; use byteorder::ReadBytesExt; +use integer_encoding::{VarIntAsyncReader, VarIntReader}; use ipld_core::{ cid::{multihash::Multihash, Cid}, codec::Codec, }; - -use integer_encoding::{VarIntAsyncReader, VarIntReader}; - use serde_ipld_dagcbor::codec::DagCborCodec; use tokio::io::{AsyncRead, AsyncReadExt}; diff --git a/storage/file-storage/src/car/v1/writer.rs b/storage/file-storage/src/car/v1/writer.rs index 5e4d22a1b..e89d1fefc 100644 --- a/storage/file-storage/src/car/v1/writer.rs +++ b/storage/file-storage/src/car/v1/writer.rs @@ -1,12 +1,10 @@ -use ipld_core::{cid::Cid, codec::Codec}; - use integer_encoding::VarIntAsyncWriter; +use ipld_core::{cid::Cid, codec::Codec}; use serde_ipld_dagcbor::codec::DagCborCodec; use tokio::io::{AsyncWrite, AsyncWriteExt}; -use crate::car::Error; - pub use crate::car::v1::Header; +use crate::car::Error; /// Write a CARv1 header to the provider writer. pub(crate) async fn write_header(writer: &mut W, header: &Header) -> Result<(), Error> @@ -100,12 +98,11 @@ mod tests { io::{BufReader, BufWriter}, }; - use crate::{ - car::generate_multihash, - car::v1::{Header, Reader}, - }; - use super::Writer; + use crate::car::{ + generate_multihash, + v1::{Header, Reader}, + }; const RAW_CODEC: u64 = 0x55; diff --git a/storage/file-storage/src/car/v2/index.rs b/storage/file-storage/src/car/v2/index.rs index ff9717d44..63a373618 100644 --- a/storage/file-storage/src/car/v2/index.rs +++ b/storage/file-storage/src/car/v2/index.rs @@ -1,6 +1,5 @@ -use std::{collections::BTreeMap, mem::offset_of}; +use std::collections::BTreeMap; -use digest::consts::U64; use integer_encoding::{VarIntAsyncReader, VarIntAsyncWriter}; use tokio::io::{AsyncRead, AsyncReadExt, AsyncWrite, AsyncWriteExt}; @@ -291,6 +290,14 @@ mod tests { io::Cursor, }; + use digest::generic_array::GenericArray; + use rand::{random, Fill, Rng}; + use sha2::{Digest, Sha256, Sha512}; + use tokio::{ + fs::File, + io::{AsyncReadExt, AsyncSeekExt, BufReader, ReadBuf}, + }; + use crate::car::{ generate_multihash, v1::read_block, @@ -303,14 +310,6 @@ mod tests { MultihashCode, }; - use digest::generic_array::GenericArray; - use rand::{random, Fill, Rng}; - use sha2::{Digest, Sha256, Sha512}; - use tokio::{ - fs::File, - io::{AsyncReadExt, AsyncSeekExt, BufReader, ReadBuf}, - }; - fn generate_single_width_index(count: u64) -> SingleWidthIndex where H: Digest, diff --git a/storage/file-storage/src/car/v2/mod.rs b/storage/file-storage/src/car/v2/mod.rs index a87e2b5a3..3759f1494 100644 --- a/storage/file-storage/src/car/v2/mod.rs +++ b/storage/file-storage/src/car/v2/mod.rs @@ -1,13 +1,10 @@ mod index; mod reader; -pub use index::{Index, MultiWidthIndex, MultihashIndexSorted}; - use bitflags::bitflags; use byteorder::{LittleEndian, WriteBytesExt}; use ipld_core::cid::Cid; -use tokio::io::AsyncWrite; -use tokio::io::AsyncWriteExt; +use tokio::io::{AsyncWrite, AsyncWriteExt}; use crate::car::{self, Error}; @@ -157,9 +154,11 @@ mod tests { use sha2::Sha256; use tokio::io::BufWriter; - use crate::{car, car::generate_multihash, car::v2::Header}; - use super::Writer; + use crate::{ + car, + car::{generate_multihash, v2::Header}, + }; const RAW_CODEC: u64 = 0x55; diff --git a/storage/file-storage/src/car/v2/reader.rs b/storage/file-storage/src/car/v2/reader.rs index f6716702e..f31ad4742 100644 --- a/storage/file-storage/src/car/v2/reader.rs +++ b/storage/file-storage/src/car/v2/reader.rs @@ -1,16 +1,14 @@ -use bitflags::bitflags; -use byteorder::{LittleEndian, WriteBytesExt}; use ipld_core::cid::Cid; -use thiserror::Error; -use tokio::io::{AsyncRead, AsyncReadExt, AsyncWriteExt}; -use tokio::io::{AsyncSeek, AsyncWrite}; - -use crate::car; -use crate::car::v2::index::Index; -use crate::car::v2::{Characteristics, Header, PRAGMA}; -use crate::car::Error; +use tokio::io::{AsyncRead, AsyncReadExt}; use super::index::read_index; +use crate::{ + car, + car::{ + v2::{index::Index, Characteristics, Header, PRAGMA}, + Error, + }, +}; /// Low-level CARv2 reader. pub struct Reader { @@ -80,10 +78,9 @@ mod tests { use sha2::Sha256; use tokio::{fs::File, io::AsyncSeekExt}; - use crate::{ - car::generate_multihash, - car::v2::{index::Index, reader::Reader, Error, PRAGMA}, - car::{self, v1}, + use crate::car::{ + self, generate_multihash, v1, + v2::{index::Index, reader::Reader, Error, PRAGMA}, }; #[tokio::test] From db8aec3f362c0061cbed41295997030fff4ffb3d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jose=CC=81=20Duarte?= Date: Wed, 22 May 2024 14:57:43 +0100 Subject: [PATCH 12/63] fix: merge rustfmt.toml --- .rustfmt.toml | 2 ++ rustfmt.toml | 2 -- 2 files changed, 2 insertions(+), 2 deletions(-) delete mode 100644 rustfmt.toml diff --git a/.rustfmt.toml b/.rustfmt.toml index 6380de253..842ead843 100644 --- a/.rustfmt.toml +++ b/.rustfmt.toml @@ -1,3 +1,5 @@ edition = "2021" group_imports = "StdExternalCrate" imports_granularity = "Crate" +hard_tabs = false +tab_spaces = 4 diff --git a/rustfmt.toml b/rustfmt.toml deleted file mode 100644 index 83f0002f0..000000000 --- a/rustfmt.toml +++ /dev/null @@ -1,2 +0,0 @@ -hard_tabs = false -tab_spaces = 4 From 7c42c6072c819333ada33030d209f316dbf0202d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jose=CC=81=20Duarte?= Date: Wed, 22 May 2024 16:28:50 +0100 Subject: [PATCH 13/63] fix(file-storage): cid bug --- storage/file-storage/src/car/v1/writer.rs | 22 ++++++++-------------- 1 file changed, 8 insertions(+), 14 deletions(-) diff --git a/storage/file-storage/src/car/v1/writer.rs b/storage/file-storage/src/car/v1/writer.rs index e89d1fefc..d62edc855 100644 --- a/storage/file-storage/src/car/v1/writer.rs +++ b/storage/file-storage/src/car/v1/writer.rs @@ -1,3 +1,5 @@ +use std::io::Cursor; + use integer_encoding::VarIntAsyncWriter; use ipld_core::{cid::Cid, codec::Codec}; use serde_ipld_dagcbor::codec::DagCborCodec; @@ -20,33 +22,28 @@ where /// Write a [`Cid`] and block to the given writer. /// /// This is a low-level function to be used in the implementation of CAR writers. -/// The function takes a `cid_buffer` to avoid allocating a new buffer every time it is called. pub(crate) async fn write_block( writer: &mut W, cid: &Cid, block: Block, - mut cid_buffer: &mut Vec, // AsMut<[u8]> just pretends to work actually ) -> Result<(), Error> where W: AsyncWrite + Unpin, Block: AsRef<[u8]>, { - let written = cid.write_bytes(&mut cid_buffer)?; - debug_assert!(written == cid.encoded_len(), "failed to write the full Cid"); let data = block.as_ref(); - let len = written + data.len(); + let len = cid.encoded_len() + data.len(); writer.write_varint_async(len).await?; - writer.write_all(&cid_buffer[..written]).await?; - writer.write_all(&data).await?; + // This allocation can probably be spared + writer.write_all(&cid.to_bytes()).await?; + writer.write_all(block.as_ref()).await?; Ok(()) } /// Low-level CARv1 writer. pub struct Writer { writer: W, - /// Avoids allocating a new buffer each time we write a [`Cid`]. - cid_buffer: Vec, } impl Writer { @@ -54,10 +51,7 @@ impl Writer { /// /// Takes a writer into which the data will be written. pub fn new(writer: W) -> Self { - Self { - writer, - cid_buffer: Vec::new(), - } + Self { writer } } } @@ -77,7 +71,7 @@ where where D: AsRef<[u8]>, { - write_block(&mut self.writer, cid, data, &mut self.cid_buffer).await + write_block(&mut self.writer, cid, data).await } /// Flushes and returns the inner writer. From 2455ff7a6639fe24759d00e076bd74310211439d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jose=CC=81=20Duarte?= Date: Wed, 22 May 2024 16:29:18 +0100 Subject: [PATCH 14/63] fix(file-storage): finish testing v2 writer --- Cargo.lock | 15 ++ Cargo.toml | 8 +- storage/file-storage/Cargo.toml | 3 + storage/file-storage/src/car/mod.rs | 5 +- storage/file-storage/src/car/v2/index.rs | 25 +- storage/file-storage/src/car/v2/mod.rs | 307 +++++++++++++++++++---- 6 files changed, 308 insertions(+), 55 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index c156ec5d1..3159bad02 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3266,6 +3266,7 @@ dependencies = [ "digest 0.10.7", "integer-encoding 4.0.0", "ipld-core", + "ipld-dagpb", "quick-protobuf", "rand 0.8.5", "rs_merkle", @@ -3274,6 +3275,8 @@ dependencies = [ "sha2 0.10.8", "thiserror", "tokio", + "tokio-stream", + "tokio-util", ] [[package]] @@ -4475,6 +4478,18 @@ dependencies = [ "serde_bytes", ] +[[package]] +name = "ipld-dagpb" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "500af0d645ad3c26b544d2ec77c87fefec9319f5eda567d0993b9db59708994f" +dependencies = [ + "bytes", + "ipld-core", + "quick-protobuf", + "thiserror", +] + [[package]] name = "ipnet" version = "2.9.0" diff --git a/Cargo.toml b/Cargo.toml index 4323737e8..08b4d6d7d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -58,10 +58,12 @@ rand = "0.8.5" sha2 = "0.10.8" digest = "0.10.7" rs_merkle = "1.4.2" -integer-encoding = { version = "4.0.0" } -byteorder = { version = "1.5.0" } +integer-encoding = "4.0.0" +byteorder = "1.5.0" bitflags = "2.5.0" - +tokio-util = "0.7.11" +tokio-stream = "0.1.15" +ipld-dagpb = "0.2.0" # Local polka-storage-runtime = { path = "runtime" } diff --git a/storage/file-storage/Cargo.toml b/storage/file-storage/Cargo.toml index dd5f3280a..5c208ec94 100644 --- a/storage/file-storage/Cargo.toml +++ b/storage/file-storage/Cargo.toml @@ -25,6 +25,9 @@ sha2 = { workspace = true } thiserror = { workspace = true } tokio = { workspace = true, features = ["full"] } bitflags = { workspace = true } +tokio-util = { workspace = true, features = ["io"] } +tokio-stream = { workspace = true } +ipld-dagpb = { workspace = true } [lints] workspace = true diff --git a/storage/file-storage/src/car/mod.rs b/storage/file-storage/src/car/mod.rs index d829c2a30..2086385c8 100644 --- a/storage/file-storage/src/car/mod.rs +++ b/storage/file-storage/src/car/mod.rs @@ -4,7 +4,10 @@ mod v1; mod v2; use digest::Digest; -use ipld_core::cid::multihash::Multihash; +use ipld_core::{ + cid::{multihash::Multihash, Cid}, + ipld, +}; /// Trait to ease implementing generic multihash generation. pub trait MultihashCode { diff --git a/storage/file-storage/src/car/v2/index.rs b/storage/file-storage/src/car/v2/index.rs index 63a373618..de58107ea 100644 --- a/storage/file-storage/src/car/v2/index.rs +++ b/storage/file-storage/src/car/v2/index.rs @@ -27,7 +27,7 @@ pub struct IndexEntry { impl IndexEntry { /// Construct a new [`IndexEntry`]. - fn new(digest: Vec, offset: u64) -> Self { + pub fn new(digest: Vec, offset: u64) -> Self { Self { digest, offset } } } @@ -66,6 +66,12 @@ impl SingleWidthIndex { } } +impl From for SingleWidthIndex { + fn from(value: IndexEntry) -> Self { + SingleWidthIndex::new(value.digest.len() as u32, 1, vec![value]) + } +} + impl TryFrom> for SingleWidthIndex { type Error = Error; @@ -97,6 +103,12 @@ impl TryFrom> for SingleWidthIndex { #[derive(Debug, PartialEq, Eq)] pub struct MultiWidthIndex(pub Vec); +impl From for MultiWidthIndex { + fn from(value: IndexEntry) -> Self { + Self(vec![SingleWidthIndex::from(value)]) + } +} + impl From for MultiWidthIndex { fn from(value: SingleWidthIndex) -> Self { Self(vec![value]) @@ -113,7 +125,10 @@ impl From> for MultiWidthIndex { /// /// For more details, read the [`Format 0x0401: MultihashIndexSorted`](https://ipld.io/specs/transport/car/carv2/#format-0x0401-multihashindexsorted) section in the CARv2 specification. #[derive(Debug, PartialEq, Eq)] -pub struct MultihashIndexSorted(pub BTreeMap); +pub struct MultihashIndexSorted( + // NOTE(@jmg-duarte,21/05/2024): maybe we should implement Deref where Deref::Target = BTreeMap? + pub BTreeMap, +); impl From> for MultihashIndexSorted { fn from(value: BTreeMap) -> Self { @@ -128,6 +143,12 @@ pub enum Index { MultihashIndexSorted(MultihashIndexSorted), } +impl Index { + pub fn multihash(index: BTreeMap) -> Self { + Self::MultihashIndexSorted(index.into()) + } +} + pub(crate) async fn write_index(mut writer: W, index: &Index) -> Result<(), Error> where W: AsyncWrite + Unpin, diff --git a/storage/file-storage/src/car/v2/mod.rs b/storage/file-storage/src/car/v2/mod.rs index 3759f1494..4ef5b5850 100644 --- a/storage/file-storage/src/car/v2/mod.rs +++ b/storage/file-storage/src/car/v2/mod.rs @@ -8,6 +8,8 @@ use tokio::io::{AsyncWrite, AsyncWriteExt}; use crate::car::{self, Error}; +use self::index::Index; + /// The pragma for a CARv2. This is also a valid CARv1 header, with version 2 and no root CIDs. pub const PRAGMA: [u8; 11] = [ 0x0a, // unit(10) @@ -72,9 +74,6 @@ where W: AsyncWrite + Unpin, { writer: W, - has_written_header: bool, - has_written_v1_header: bool, - cid_buffer: Vec, } impl Writer @@ -85,31 +84,23 @@ where /// /// Takes a write into which the data will be written. pub fn new(writer: W) -> Self { - Self { - writer, - has_written_header: false, - has_written_v1_header: false, - cid_buffer: Vec::new(), - } + Self { writer } } /// Write a CARv2 header. /// /// * If the header has already been written, this is a no-op. pub async fn write_header(&mut self, header: &Header) -> Result<(), Error> { - if !self.has_written_header { - self.writer.write(&PRAGMA).await?; - - let mut buffer = [0; 40]; - let mut handle = &mut buffer[..]; - WriteBytesExt::write_u128::(&mut handle, header.characteristics.bits())?; - WriteBytesExt::write_u64::(&mut handle, header.data_offset)?; - WriteBytesExt::write_u64::(&mut handle, header.data_size)?; - WriteBytesExt::write_u64::(&mut handle, header.index_offset)?; - - self.writer.write_all(&buffer).await?; - self.has_written_header = true; - } + self.writer.write(&PRAGMA).await?; + + let mut buffer = [0; 40]; + let mut handle = &mut buffer[..]; + WriteBytesExt::write_u128::(&mut handle, header.characteristics.bits())?; + WriteBytesExt::write_u64::(&mut handle, header.data_offset)?; + WriteBytesExt::write_u64::(&mut handle, header.data_size)?; + WriteBytesExt::write_u64::(&mut handle, header.index_offset)?; + + self.writer.write_all(&buffer).await?; Ok(()) } @@ -117,15 +108,7 @@ where /// /// * If the header has already been written, this is a no-op. pub async fn write_v1_header(&mut self, v1_header: &car::v1::Header) -> Result<(), Error> { - debug_assert!( - self.has_written_header, - "CARv2 header has not been written!" - ); - if !self.has_written_v1_header { - car::v1::write_header(&mut self.writer, v1_header).await?; - self.has_written_v1_header = true; - } - Ok(()) + car::v1::write_header(&mut self.writer, v1_header).await } /// Write a [`Cid`] and the respective data block. @@ -133,12 +116,11 @@ where where Block: AsRef<[u8]>, { - debug_assert!( - self.has_written_header && self.has_written_v1_header, - "Both headers need to be written!" - ); - car::v1::write_block(&mut self.writer, cid, block, &mut self.cid_buffer).await?; - Ok(()) + car::v1::write_block(&mut self.writer, cid, block).await + } + + pub async fn write_index(&mut self, index: &Index) -> Result<(), Error> { + car::v2::index::write_index(&mut self.writer, index).await } /// Flushes and returns the inner writer. @@ -146,18 +128,34 @@ where self.writer.flush().await?; Ok(self.writer) } + + pub fn get_inner_mut(&mut self) -> &mut W { + &mut self.writer + } } #[cfg(test)] mod tests { - use ipld_core::cid::Cid; + use std::collections::BTreeSet; + use std::io::Cursor; + use std::panic; + use std::{collections::BTreeMap, io::Seek, ops::Index}; + + use ipld_core::cid::{Cid, CidGeneric}; + use ipld_core::ipld::Ipld; + use ipld_dagpb::{DagPbCodec, PbNode}; use sha2::Sha256; + use tokio::fs::{File, OpenOptions}; use tokio::io::BufWriter; + use tokio::io::{AsyncSeekExt, AsyncWriteExt}; + use tokio_stream::StreamExt; + use tokio_util::io::ReaderStream; - use super::Writer; - use crate::{ - car, - car::{generate_multihash, v2::Header}, + use crate::car::{ + self, generate_multihash, + v1::Reader, + v2::{index::IndexEntry, index::MultiWidthIndex, index::SingleWidthIndex, Header, Writer}, + MultihashCode, }; const RAW_CODEC: u64 = 0x55; @@ -170,14 +168,71 @@ mod tests { } } + /// Check if two given slices are equal. + /// + /// First checks if the two slices have the same size, + /// then checks each byte-pair. If the slices differ, + /// it will show an error message with the difference index + /// along with a window showing surrounding elements + /// (instead of spamming your terminal like `assert_eq!` does). + fn assert_buffer_eq(lhs: &[u8], rhs: &[u8]) { + assert_eq!(lhs.len(), rhs.len()); + for (i, (l, r)) in lhs.iter().zip(rhs).enumerate() { + let before = i.checked_sub(5).unwrap_or(0); + let after = (i + 5).min(rhs.len()); + assert_eq!( + l, + r, + "difference at index {}\n left: {:02x?}\n right: {:02x?}", + i, + &lhs[before..=after], + &rhs[before..=after], + ) + } + } + #[tokio::test] - async fn header() { - // TODO(@jmg-duarte,18/05/2024): finish this + async fn header_lorem() { + let file_contents = tokio::fs::read("tests/fixtures/car_v2/lorem.car") + .await + .unwrap(); + + let mut writer = Writer::test_writer(); + // To simplify testing, the values were extracted using `car inspect` + writer + .write_header(&Header::new(false, 51, 7661, 7712)) + .await + .unwrap(); + + let inner = writer.finish().await.unwrap().into_inner(); + assert_eq!(inner.len(), 51); + assert_eq!(inner, file_contents[..51]); } #[tokio::test] - async fn full() { + async fn header_spaceglenda() { + let file_contents = tokio::fs::read("tests/fixtures/car_v2/spaceglenda.car") + .await + .unwrap(); + let mut writer = Writer::test_writer(); + // To simplify testing, the values were extracted using `car inspect` + writer + .write_header(&Header::new(false, 51, 654402, 654453)) + .await + .unwrap(); + + let inner = writer.finish().await.unwrap().into_inner(); + assert_eq!(inner.len(), 51); + assert_eq!(inner, file_contents[..51]); + } + + // Byte to byte comparison to the lorem.car file + #[tokio::test] + async fn full_lorem() { + let cursor = Cursor::new(vec![]); + let buf_writer = BufWriter::new(cursor); + let mut writer = Writer::new(buf_writer); let file_contents = tokio::fs::read("tests/fixtures/original/lorem.txt") .await @@ -185,25 +240,179 @@ mod tests { let contents_multihash = generate_multihash::(&file_contents); let root_cid = Cid::new_v1(RAW_CODEC, contents_multihash); - // Values were reversed out of a the car file + // To simplify testing, the values were extracted using `car inspect` writer .write_header(&Header::new(false, 51, 7661, 7712)) .await .unwrap(); + // We start writing the CARv1 here and keep the stream positions + // so that we can properly index the blocks later + let start_car_v1 = { + let inner = writer.get_inner_mut(); + inner.stream_position().await.unwrap() + }; + writer .write_v1_header(&car::v1::Header::new(vec![root_cid])) .await .unwrap(); + + let start_car_v1_data = { + let inner = writer.get_inner_mut(); + inner.stream_position().await.unwrap() + }; + // There's only one block writer.write_block(&root_cid, &file_contents).await.unwrap(); - let buf_writer = writer.finish().await.unwrap(); + let inner = writer.get_inner_mut(); + let written = inner.stream_position().await.unwrap(); + assert_eq!(written, 7712); + + let mut mapping = BTreeMap::new(); + mapping.insert( + Sha256::CODE, + MultiWidthIndex::from(IndexEntry::new( + root_cid.hash().digest().to_vec(), + // This detail is "hidden" in the spec even though it's SO IMPORTANT + // See: https://ipld.io/specs/transport/car/carv2/#format-0x0400-indexsorted + // > Individual index entries are the concatenation of the hash digest + // > an an additional 64-bit unsigned little-endian integer indicating + // > the offset of the block from the begining of the CARv1 data payload. + start_car_v1_data - start_car_v1, + )), + ); + let index = car::v2::index::Index::multihash(mapping); + writer.write_index(&index).await.unwrap(); + + let mut buf_writer = writer.finish().await.unwrap(); + buf_writer.rewind().await.unwrap(); + + let expected_header = tokio::fs::read("tests/fixtures/car_v2/lorem.car") + .await + .unwrap(); + + assert_buffer_eq(&expected_header, buf_writer.get_ref().get_ref()) + } + + // Byte to byte comparison to the spaceglenda.car file + // This test also covers the nitty-gritty details of how to write a CARv2 file with indexes. + #[tokio::test] + async fn full_spaceglenda() { + let cursor = Cursor::new(vec![]); + let buf_writer = BufWriter::new(cursor); + let mut writer = Writer::new(buf_writer); + + let file = File::open("tests/fixtures/original/spaceglenda.jpg") + .await + .unwrap(); + // https://github.com/ipfs/boxo/blob/f4fe8997dcbeb39b3a4842d8f08b34739bfd84a4/chunker/parse.go#L13 + let mut file_chunker = ReaderStream::with_capacity(file, 1024 * 256); + let mut file_blocks = vec![]; + while let Some(chunk) = file_chunker.next().await { + let chunk = chunk.unwrap(); + let multihash = generate_multihash::(&chunk); + let cid = Cid::new_v1(RAW_CODEC, multihash); + file_blocks.push((cid, chunk)); + } + + let links = file_blocks + .iter() + .map(|(cid, block)| { + // NOTE(@jmg-duarte,22/05/2024): really bad API because PbLink is not public... + // https://github.com/ipld/rust-ipld-dagpb/pull/7 + let mut pb_link = BTreeMap::::new(); + pb_link.insert("Hash".to_string(), cid.into()); + pb_link.insert("Name".to_string(), "".into()); + pb_link.insert("Tsize".to_string(), block.len().into()); + (&Ipld::from(pb_link)).try_into() + }) + .collect::>() + .unwrap(); + let node = PbNode { links, data: None }; + let mut node_bytes = node.into_bytes(); + // This is very much cheating but the contents here are the UnixFS wrapper for the node + // TODO(@jmg-duarte,22/05/2024): replace this when we implement unixfs + std::io::Write::write_all( + &mut node_bytes, + &vec![ + 0x0A, 0x12, 0x08, 0x02, 0x18, 0xCE, 0xF5, 0x27, 0x20, 0x80, 0x80, 0x10, 0x20, 0x80, + 0x80, 0x10, 0x20, 0xCE, 0xF5, 0x07, + ], + ) + .unwrap(); + let root_cid = { + let multihash = generate_multihash::(&node_bytes); + Cid::new_v1(0x70, multihash) + }; + + // To simplify testing, the values were extracted using `car inspect` + writer + .write_header(&Header::new(false, 51, 654402, 654453)) + .await + .unwrap(); + + // We start writing the CARv1 here and keep the stream positions + // so that we can properly index the blocks later + let start_car_v1 = { + let inner = writer.get_inner_mut(); + inner.stream_position().await.unwrap() + }; + + writer + .write_v1_header(&car::v1::Header::new(vec![root_cid])) + .await + .unwrap(); + + let mut offsets = vec![]; + for (cid, block) in &file_blocks { + // write the blocks, saving their positions for the index + offsets.push({ + let inner = writer.get_inner_mut(); + inner.stream_position().await.unwrap() - start_car_v1 + }); + writer.write_block(cid, block).await.unwrap(); + } + // Write the DAG-PB link unifying everything + offsets.push({ + let inner = writer.get_inner_mut(); + inner.stream_position().await.unwrap() - start_car_v1 + }); + writer.write_block(&root_cid, &node_bytes).await.unwrap(); + + let inner = writer.get_inner_mut(); + let written = inner.stream_position().await.unwrap(); + assert_eq!(written, 654453); + + let mut mapping = BTreeMap::new(); + mapping.insert( + Sha256::CODE, + MultiWidthIndex::from( + SingleWidthIndex::try_from( + file_blocks + .iter() + .chain(std::iter::once(&(root_cid, node_bytes.into()))) + .zip(&offsets) + .map(|((cid, _), offset)| { + IndexEntry::new(cid.hash().digest().to_vec(), *offset) + }) + .collect::>(), + ) + .unwrap(), + ), + ); + + let index = car::v2::index::Index::multihash(mapping); + writer.write_index(&index).await.unwrap(); + + let mut buf_writer = writer.finish().await.unwrap(); + buf_writer.rewind().await.unwrap(); - let expected_header = tokio::fs::read("tests/fixtures/car_v1/lorem.car") + let expected_header = tokio::fs::read("tests/fixtures/car_v2/spaceglenda.car") .await .unwrap(); - assert_eq!(&expected_header, buf_writer.get_ref()); + assert_buffer_eq(&expected_header, buf_writer.get_ref().get_ref()); } } From 3d01f471d6b8176702b30dd07a741ac7d9fbb9dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jose=CC=81=20Duarte?= Date: Wed, 22 May 2024 16:42:11 +0100 Subject: [PATCH 15/63] feat(file-storage): move car library out of file-storage --- Cargo.lock | 42 ++++++------ Cargo.toml | 2 +- storage/file-storage/Cargo.toml | 18 ----- storage/file-storage/src/lib.rs | 1 - storage/mater/Cargo.toml | 33 +++++++++ storage/{file-storage => mater}/README.md | 6 ++ .../src/car/mod.rs => mater/src/lib.rs} | 64 +++++++++--------- .../src/car => mater/src}/v1/mod.rs | 4 +- .../src/car => mater/src}/v1/reader.rs | 8 +-- .../src/car => mater/src}/v1/writer.rs | 8 +-- .../src/car => mater/src}/v2/index.rs | 7 +- .../src/car => mater/src}/v2/mod.rs | 24 +++---- .../src/car => mater/src}/v2/reader.rs | 17 ++--- .../tests/fixtures/car_v1/lorem.car | Bin .../tests/fixtures/car_v1/lorem_header.car | Bin .../tests/fixtures/car_v1/spaceglenda.car | Bin .../tests/fixtures/car_v2/lorem.car | Bin .../tests/fixtures/car_v2/spaceglenda.car | Bin .../tests/fixtures/original/lorem.txt | 0 .../tests/fixtures/original/lorem_1024.txt | 0 .../fixtures/original/lorem_4096_dup.txt | 0 .../tests/fixtures/original/spaceglenda.jpg | Bin 22 files changed, 126 insertions(+), 108 deletions(-) delete mode 100644 storage/file-storage/src/lib.rs create mode 100644 storage/mater/Cargo.toml rename storage/{file-storage => mater}/README.md (76%) rename storage/{file-storage/src/car/mod.rs => mater/src/lib.rs} (53%) rename storage/{file-storage/src/car => mater/src}/v1/mod.rs (84%) rename storage/{file-storage/src/car => mater/src}/v1/reader.rs (98%) rename storage/{file-storage/src/car => mater/src}/v1/writer.rs (97%) rename storage/{file-storage/src/car => mater/src}/v2/index.rs (99%) rename storage/{file-storage/src/car => mater/src}/v2/mod.rs (95%) rename storage/{file-storage/src/car => mater/src}/v2/reader.rs (96%) rename storage/{file-storage => mater}/tests/fixtures/car_v1/lorem.car (100%) rename storage/{file-storage => mater}/tests/fixtures/car_v1/lorem_header.car (100%) rename storage/{file-storage => mater}/tests/fixtures/car_v1/spaceglenda.car (100%) rename storage/{file-storage => mater}/tests/fixtures/car_v2/lorem.car (100%) rename storage/{file-storage => mater}/tests/fixtures/car_v2/spaceglenda.car (100%) rename storage/{file-storage => mater}/tests/fixtures/original/lorem.txt (100%) rename storage/{file-storage => mater}/tests/fixtures/original/lorem_1024.txt (100%) rename storage/{file-storage => mater}/tests/fixtures/original/lorem_4096_dup.txt (100%) rename storage/{file-storage => mater}/tests/fixtures/original/spaceglenda.jpg (100%) diff --git a/Cargo.lock b/Cargo.lock index 3159bad02..f1f1a2311 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3259,25 +3259,6 @@ dependencies = [ [[package]] name = "file-storage" version = "0.1.0" -dependencies = [ - "bitflags 2.5.0", - "byteorder", - "clap", - "digest 0.10.7", - "integer-encoding 4.0.0", - "ipld-core", - "ipld-dagpb", - "quick-protobuf", - "rand 0.8.5", - "rs_merkle", - "serde", - "serde_ipld_dagcbor", - "sha2 0.10.8", - "thiserror", - "tokio", - "tokio-stream", - "tokio-util", -] [[package]] name = "filetime" @@ -5537,6 +5518,29 @@ version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2532096657941c2fea9c289d370a250971c689d4f143798ff67113ec042024a5" +[[package]] +name = "mater" +version = "0.1.0" +dependencies = [ + "bitflags 2.5.0", + "byteorder", + "clap", + "digest 0.10.7", + "integer-encoding 4.0.0", + "ipld-core", + "ipld-dagpb", + "quick-protobuf", + "rand 0.8.5", + "rs_merkle", + "serde", + "serde_ipld_dagcbor", + "sha2 0.10.8", + "thiserror", + "tokio", + "tokio-stream", + "tokio-util", +] + [[package]] name = "matrixmultiply" version = "0.3.8" diff --git a/Cargo.toml b/Cargo.toml index 08b4d6d7d..44845b816 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -7,7 +7,7 @@ repository = "https://github.com/eigerco/polka-storage" [workspace] resolver = "2" -members = ["node", "runtime", "storage/file-storage"] +members = ["node", "runtime", "storage/file-storage", "storage/mater"] # FIXME(#@jmg-duarte,#7,14/5/24): remove the patch once something >1.11.0 is released [patch.'https://github.com/paritytech/litep2p'] diff --git a/storage/file-storage/Cargo.toml b/storage/file-storage/Cargo.toml index 5c208ec94..392400db6 100644 --- a/storage/file-storage/Cargo.toml +++ b/storage/file-storage/Cargo.toml @@ -10,24 +10,6 @@ version = "0.1.0" [dependencies] -# TODO(@jmg-duarte,15/05/2024): reduce the required features -byteorder = { workspace = true, features = ["i128"] } -clap = { workspace = true, features = ["derive"] } -digest = { workspace = true } -integer-encoding = { workspace = true, features = ["tokio_async"] } -ipld-core = { workspace = true, features = ["serde"] } -quick-protobuf = { workspace = true } -rand = { workspace = true } -rs_merkle = { workspace = true } -serde = { workspace = true, features = ["derive"] } -serde_ipld_dagcbor = { workspace = true } -sha2 = { workspace = true } -thiserror = { workspace = true } -tokio = { workspace = true, features = ["full"] } -bitflags = { workspace = true } -tokio-util = { workspace = true, features = ["io"] } -tokio-stream = { workspace = true } -ipld-dagpb = { workspace = true } [lints] workspace = true diff --git a/storage/file-storage/src/lib.rs b/storage/file-storage/src/lib.rs deleted file mode 100644 index 0fd896290..000000000 --- a/storage/file-storage/src/lib.rs +++ /dev/null @@ -1 +0,0 @@ -mod car; diff --git a/storage/mater/Cargo.toml b/storage/mater/Cargo.toml new file mode 100644 index 000000000..ded166241 --- /dev/null +++ b/storage/mater/Cargo.toml @@ -0,0 +1,33 @@ +[package] +name = "mater" # name WIP +version = "0.1.0" +authors.workspace = true +edition.workspace = true +homepage.workspace = true +license-file.workspace = true +repository.workspace = true + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] +# TODO(@jmg-duarte,15/05/2024): reduce the required features +byteorder = { workspace = true, features = ["i128"] } +clap = { workspace = true, features = ["derive"] } +digest = { workspace = true } +integer-encoding = { workspace = true, features = ["tokio_async"] } +ipld-core = { workspace = true, features = ["serde"] } +quick-protobuf = { workspace = true } +rand = { workspace = true } +rs_merkle = { workspace = true } +serde = { workspace = true, features = ["derive"] } +serde_ipld_dagcbor = { workspace = true } +sha2 = { workspace = true } +thiserror = { workspace = true } +tokio = { workspace = true, features = ["full"] } +bitflags = { workspace = true } +tokio-util = { workspace = true, features = ["io"] } +tokio-stream = { workspace = true } +ipld-dagpb = { workspace = true } + +[lints] +workspace = true diff --git a/storage/file-storage/README.md b/storage/mater/README.md similarity index 76% rename from storage/file-storage/README.md rename to storage/mater/README.md index 5fb470294..1cf6340ee 100644 --- a/storage/file-storage/README.md +++ b/storage/mater/README.md @@ -1,3 +1,9 @@ +# Mater + +A Rust library to read and write CAR files. + +## Specifications + CARv1 specification: https://ipld.io/specs/transport/car/carv1/ CARv2 specification: https://ipld.io/specs/transport/car/carv2/ UnixFS specification: https://github.com/ipfs/specs/blob/e4e5754ad4a4bfbb2ebe63f4c27631f573703de0/UNIXFS.md diff --git a/storage/file-storage/src/car/mod.rs b/storage/mater/src/lib.rs similarity index 53% rename from storage/file-storage/src/car/mod.rs rename to storage/mater/src/lib.rs index 2086385c8..b993ffe56 100644 --- a/storage/file-storage/src/car/mod.rs +++ b/storage/mater/src/lib.rs @@ -1,39 +1,6 @@ -// mod chunker; -// mod pb; mod v1; mod v2; -use digest::Digest; -use ipld_core::{ - cid::{multihash::Multihash, Cid}, - ipld, -}; - -/// Trait to ease implementing generic multihash generation. -pub trait MultihashCode { - /// Multihash code as defined in the [specification](https://github.com/multiformats/multicodec/blob/c954a787dc6a17d099653e5f90d26fbd177d2074/table.csv). - const CODE: u64; -} - -/// Generate a multihash for a byte slice. -pub fn generate_multihash(bytes: &[u8]) -> Multihash<64> -where - H: Digest + MultihashCode, -{ - let mut hasher = H::new(); - hasher.update(&bytes); - let hashed_bytes = hasher.finalize(); - Multihash::wrap(H::CODE, &hashed_bytes).unwrap() -} - -impl MultihashCode for sha2::Sha256 { - const CODE: u64 = 0x12; -} - -impl MultihashCode for sha2::Sha512 { - const CODE: u64 = 0x13; -} - #[derive(Debug, thiserror::Error)] pub enum Error { #[error(transparent)] @@ -65,3 +32,34 @@ pub enum Error { #[error("cannot create an index out of an empty `Vec`")] EmptyIndexError, } + +#[cfg(test)] +mod multihash { + use digest::Digest; + use ipld_core::cid::multihash::Multihash; + + /// Trait to ease implementing generic multihash generation. + pub(crate) trait MultihashCode { + /// Multihash code as defined in the [specification](https://github.com/multiformats/multicodec/blob/c954a787dc6a17d099653e5f90d26fbd177d2074/table.csv). + const CODE: u64; + } + + /// Generate a multihash for a byte slice. + pub(crate) fn generate_multihash(bytes: &[u8]) -> Multihash<64> + where + H: Digest + MultihashCode, + { + let mut hasher = H::new(); + hasher.update(&bytes); + let hashed_bytes = hasher.finalize(); + Multihash::wrap(H::CODE, &hashed_bytes).unwrap() + } + + impl MultihashCode for sha2::Sha256 { + const CODE: u64 = 0x12; + } + + impl MultihashCode for sha2::Sha512 { + const CODE: u64 = 0x13; + } +} diff --git a/storage/file-storage/src/car/v1/mod.rs b/storage/mater/src/v1/mod.rs similarity index 84% rename from storage/file-storage/src/car/v1/mod.rs rename to storage/mater/src/v1/mod.rs index ec4fed86b..3965bae18 100644 --- a/storage/file-storage/src/car/v1/mod.rs +++ b/storage/mater/src/v1/mod.rs @@ -4,8 +4,8 @@ mod writer; use ipld_core::cid::Cid; use serde::{Deserialize, Serialize}; -pub use crate::car::v1::{reader::Reader, writer::Writer}; -pub(crate) use crate::car::v1::{ +pub use crate::v1::{reader::Reader, writer::Writer}; +pub(crate) use crate::v1::{ reader::{read_block, read_header}, writer::{write_block, write_header}, }; diff --git a/storage/file-storage/src/car/v1/reader.rs b/storage/mater/src/v1/reader.rs similarity index 98% rename from storage/file-storage/src/car/v1/reader.rs rename to storage/mater/src/v1/reader.rs index e75897bb0..5eb49eb89 100644 --- a/storage/file-storage/src/car/v1/reader.rs +++ b/storage/mater/src/v1/reader.rs @@ -9,7 +9,7 @@ use ipld_core::{ use serde_ipld_dagcbor::codec::DagCborCodec; use tokio::io::{AsyncRead, AsyncReadExt}; -use crate::car::{v1::Header, v2::PRAGMA, Error}; +use crate::{v1::Header, v2::PRAGMA, Error}; // `bytes::Buf` might be more useful here // https://docs.rs/bytes/1.6.0/bytes/buf/trait.Buf.html @@ -146,9 +146,9 @@ mod tests { use sha2::Sha256; use tokio::{fs::File, io::BufReader}; - use crate::car::{ - generate_multihash, - v1::{self, reader::read_cid, Reader}, + use crate::{ + multihash::generate_multihash, + v1::reader::{read_cid, Reader}, Error, }; diff --git a/storage/file-storage/src/car/v1/writer.rs b/storage/mater/src/v1/writer.rs similarity index 97% rename from storage/file-storage/src/car/v1/writer.rs rename to storage/mater/src/v1/writer.rs index d62edc855..cef764918 100644 --- a/storage/file-storage/src/car/v1/writer.rs +++ b/storage/mater/src/v1/writer.rs @@ -5,8 +5,8 @@ use ipld_core::{cid::Cid, codec::Codec}; use serde_ipld_dagcbor::codec::DagCborCodec; use tokio::io::{AsyncWrite, AsyncWriteExt}; -pub use crate::car::v1::Header; -use crate::car::Error; +pub use crate::v1::Header; +use crate::Error; /// Write a CARv1 header to the provider writer. pub(crate) async fn write_header(writer: &mut W, header: &Header) -> Result<(), Error> @@ -93,8 +93,8 @@ mod tests { }; use super::Writer; - use crate::car::{ - generate_multihash, + use crate::{ + multihash::generate_multihash, v1::{Header, Reader}, }; diff --git a/storage/file-storage/src/car/v2/index.rs b/storage/mater/src/v2/index.rs similarity index 99% rename from storage/file-storage/src/car/v2/index.rs rename to storage/mater/src/v2/index.rs index de58107ea..3432aa666 100644 --- a/storage/file-storage/src/car/v2/index.rs +++ b/storage/mater/src/v2/index.rs @@ -3,7 +3,7 @@ use std::collections::BTreeMap; use integer_encoding::{VarIntAsyncReader, VarIntAsyncWriter}; use tokio::io::{AsyncRead, AsyncReadExt, AsyncWrite, AsyncWriteExt}; -use crate::car::Error; +use crate::Error; pub const INDEX_SORTED_CODE: u64 = 0x0400; pub const MULTIHASH_INDEX_SORTED_CODE: u64 = 0x0401; @@ -319,8 +319,8 @@ mod tests { io::{AsyncReadExt, AsyncSeekExt, BufReader, ReadBuf}, }; - use crate::car::{ - generate_multihash, + use crate::{ + multihash::{generate_multihash, MultihashCode}, v1::read_block, v2::index::{ read_index, read_index_entry, read_index_sorted, read_multihash_index_sorted, @@ -328,7 +328,6 @@ mod tests { write_multihash_index_sorted, write_single_width_index, Index, IndexEntry, MultiWidthIndex, MultihashIndexSorted, SingleWidthIndex, }, - MultihashCode, }; fn generate_single_width_index(count: u64) -> SingleWidthIndex diff --git a/storage/file-storage/src/car/v2/mod.rs b/storage/mater/src/v2/mod.rs similarity index 95% rename from storage/file-storage/src/car/v2/mod.rs rename to storage/mater/src/v2/mod.rs index 4ef5b5850..72669eb67 100644 --- a/storage/file-storage/src/car/v2/mod.rs +++ b/storage/mater/src/v2/mod.rs @@ -6,7 +6,7 @@ use byteorder::{LittleEndian, WriteBytesExt}; use ipld_core::cid::Cid; use tokio::io::{AsyncWrite, AsyncWriteExt}; -use crate::car::{self, Error}; +use crate::Error; use self::index::Index; @@ -107,8 +107,8 @@ where /// Write a CARv1 header. /// /// * If the header has already been written, this is a no-op. - pub async fn write_v1_header(&mut self, v1_header: &car::v1::Header) -> Result<(), Error> { - car::v1::write_header(&mut self.writer, v1_header).await + pub async fn write_v1_header(&mut self, v1_header: &crate::v1::Header) -> Result<(), Error> { + crate::v1::write_header(&mut self.writer, v1_header).await } /// Write a [`Cid`] and the respective data block. @@ -116,11 +116,11 @@ where where Block: AsRef<[u8]>, { - car::v1::write_block(&mut self.writer, cid, block).await + crate::v1::write_block(&mut self.writer, cid, block).await } pub async fn write_index(&mut self, index: &Index) -> Result<(), Error> { - car::v2::index::write_index(&mut self.writer, index).await + crate::v2::index::write_index(&mut self.writer, index).await } /// Flushes and returns the inner writer. @@ -151,11 +151,11 @@ mod tests { use tokio_stream::StreamExt; use tokio_util::io::ReaderStream; - use crate::car::{ - self, generate_multihash, + use crate::{ + multihash::generate_multihash, + multihash::MultihashCode, v1::Reader, v2::{index::IndexEntry, index::MultiWidthIndex, index::SingleWidthIndex, Header, Writer}, - MultihashCode, }; const RAW_CODEC: u64 = 0x55; @@ -254,7 +254,7 @@ mod tests { }; writer - .write_v1_header(&car::v1::Header::new(vec![root_cid])) + .write_v1_header(&crate::v1::Header::new(vec![root_cid])) .await .unwrap(); @@ -283,7 +283,7 @@ mod tests { start_car_v1_data - start_car_v1, )), ); - let index = car::v2::index::Index::multihash(mapping); + let index = crate::v2::index::Index::multihash(mapping); writer.write_index(&index).await.unwrap(); let mut buf_writer = writer.finish().await.unwrap(); @@ -361,7 +361,7 @@ mod tests { }; writer - .write_v1_header(&car::v1::Header::new(vec![root_cid])) + .write_v1_header(&crate::v1::Header::new(vec![root_cid])) .await .unwrap(); @@ -403,7 +403,7 @@ mod tests { ), ); - let index = car::v2::index::Index::multihash(mapping); + let index = crate::v2::index::Index::multihash(mapping); writer.write_index(&index).await.unwrap(); let mut buf_writer = writer.finish().await.unwrap(); diff --git a/storage/file-storage/src/car/v2/reader.rs b/storage/mater/src/v2/reader.rs similarity index 96% rename from storage/file-storage/src/car/v2/reader.rs rename to storage/mater/src/v2/reader.rs index f31ad4742..0b9e93407 100644 --- a/storage/file-storage/src/car/v2/reader.rs +++ b/storage/mater/src/v2/reader.rs @@ -3,11 +3,8 @@ use tokio::io::{AsyncRead, AsyncReadExt}; use super::index::read_index; use crate::{ - car, - car::{ - v2::{index::Index, Characteristics, Header, PRAGMA}, - Error, - }, + v2::{index::Index, Characteristics, Header, PRAGMA}, + Error, }; /// Low-level CARv2 reader. @@ -53,12 +50,12 @@ where }) } - pub async fn read_v1_header(&mut self) -> Result { - Ok(car::v1::read_header(&mut self.reader).await?) + pub async fn read_v1_header(&mut self) -> Result { + Ok(crate::v1::read_header(&mut self.reader).await?) } pub async fn read_block(&mut self) -> Result<(Cid, Vec), Error> { - Ok(car::v1::read_block(&mut self.reader).await?) + Ok(crate::v1::read_block(&mut self.reader).await?) } pub async fn read_index(&mut self) -> Result { @@ -78,8 +75,8 @@ mod tests { use sha2::Sha256; use tokio::{fs::File, io::AsyncSeekExt}; - use crate::car::{ - self, generate_multihash, v1, + use crate::{ + multihash::generate_multihash, v2::{index::Index, reader::Reader, Error, PRAGMA}, }; diff --git a/storage/file-storage/tests/fixtures/car_v1/lorem.car b/storage/mater/tests/fixtures/car_v1/lorem.car similarity index 100% rename from storage/file-storage/tests/fixtures/car_v1/lorem.car rename to storage/mater/tests/fixtures/car_v1/lorem.car diff --git a/storage/file-storage/tests/fixtures/car_v1/lorem_header.car b/storage/mater/tests/fixtures/car_v1/lorem_header.car similarity index 100% rename from storage/file-storage/tests/fixtures/car_v1/lorem_header.car rename to storage/mater/tests/fixtures/car_v1/lorem_header.car diff --git a/storage/file-storage/tests/fixtures/car_v1/spaceglenda.car b/storage/mater/tests/fixtures/car_v1/spaceglenda.car similarity index 100% rename from storage/file-storage/tests/fixtures/car_v1/spaceglenda.car rename to storage/mater/tests/fixtures/car_v1/spaceglenda.car diff --git a/storage/file-storage/tests/fixtures/car_v2/lorem.car b/storage/mater/tests/fixtures/car_v2/lorem.car similarity index 100% rename from storage/file-storage/tests/fixtures/car_v2/lorem.car rename to storage/mater/tests/fixtures/car_v2/lorem.car diff --git a/storage/file-storage/tests/fixtures/car_v2/spaceglenda.car b/storage/mater/tests/fixtures/car_v2/spaceglenda.car similarity index 100% rename from storage/file-storage/tests/fixtures/car_v2/spaceglenda.car rename to storage/mater/tests/fixtures/car_v2/spaceglenda.car diff --git a/storage/file-storage/tests/fixtures/original/lorem.txt b/storage/mater/tests/fixtures/original/lorem.txt similarity index 100% rename from storage/file-storage/tests/fixtures/original/lorem.txt rename to storage/mater/tests/fixtures/original/lorem.txt diff --git a/storage/file-storage/tests/fixtures/original/lorem_1024.txt b/storage/mater/tests/fixtures/original/lorem_1024.txt similarity index 100% rename from storage/file-storage/tests/fixtures/original/lorem_1024.txt rename to storage/mater/tests/fixtures/original/lorem_1024.txt diff --git a/storage/file-storage/tests/fixtures/original/lorem_4096_dup.txt b/storage/mater/tests/fixtures/original/lorem_4096_dup.txt similarity index 100% rename from storage/file-storage/tests/fixtures/original/lorem_4096_dup.txt rename to storage/mater/tests/fixtures/original/lorem_4096_dup.txt diff --git a/storage/file-storage/tests/fixtures/original/spaceglenda.jpg b/storage/mater/tests/fixtures/original/spaceglenda.jpg similarity index 100% rename from storage/file-storage/tests/fixtures/original/spaceglenda.jpg rename to storage/mater/tests/fixtures/original/spaceglenda.jpg From 05103b7272641ccf3bb9b258a67abcd5e75b9de2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jose=CC=81=20Duarte?= Date: Wed, 22 May 2024 17:33:31 +0100 Subject: [PATCH 16/63] fix(file-storage): car library API cleanup --- storage/mater/src/lib.rs | 6 + storage/mater/src/v2/mod.rs | 362 +-------------------------------- storage/mater/src/v2/reader.rs | 6 +- storage/mater/src/v2/writer.rs | 359 ++++++++++++++++++++++++++++++++ 4 files changed, 375 insertions(+), 358 deletions(-) create mode 100644 storage/mater/src/v2/writer.rs diff --git a/storage/mater/src/lib.rs b/storage/mater/src/lib.rs index b993ffe56..3636b2572 100644 --- a/storage/mater/src/lib.rs +++ b/storage/mater/src/lib.rs @@ -1,6 +1,12 @@ mod v1; mod v2; +pub use v1::{Header as CarV1Header, Reader as CarV1Reader, Writer as CarV1Writer}; +pub use v2::{ + Characteristics, Header as CarV2Header, Index, IndexEntry, MultiWidthIndex, + MultihashIndexSorted, Reader as CarV2Reader, SingleWidthIndex, Writer as CarV2Writer, +}; + #[derive(Debug, thiserror::Error)] pub enum Error { #[error(transparent)] diff --git a/storage/mater/src/v2/mod.rs b/storage/mater/src/v2/mod.rs index 72669eb67..e6297f2f9 100644 --- a/storage/mater/src/v2/mod.rs +++ b/storage/mater/src/v2/mod.rs @@ -1,14 +1,12 @@ mod index; mod reader; +mod writer; -use bitflags::bitflags; -use byteorder::{LittleEndian, WriteBytesExt}; -use ipld_core::cid::Cid; -use tokio::io::{AsyncWrite, AsyncWriteExt}; - -use crate::Error; +pub use index::{Index, IndexEntry, MultiWidthIndex, MultihashIndexSorted, SingleWidthIndex}; +pub use reader::Reader; +pub use writer::Writer; -use self::index::Index; +use bitflags::bitflags; /// The pragma for a CARv2. This is also a valid CARv1 header, with version 2 and no root CIDs. pub const PRAGMA: [u8; 11] = [ @@ -67,352 +65,4 @@ impl Header { } } -/// Low-level CARv2 writer. -// TODO(@jmg-duarte,17/05/2024): add padding support -pub struct Writer -where - W: AsyncWrite + Unpin, -{ - writer: W, -} - -impl Writer -where - W: AsyncWrite + Unpin, -{ - /// Construct a new CARv1 writer. - /// - /// Takes a write into which the data will be written. - pub fn new(writer: W) -> Self { - Self { writer } - } - - /// Write a CARv2 header. - /// - /// * If the header has already been written, this is a no-op. - pub async fn write_header(&mut self, header: &Header) -> Result<(), Error> { - self.writer.write(&PRAGMA).await?; - - let mut buffer = [0; 40]; - let mut handle = &mut buffer[..]; - WriteBytesExt::write_u128::(&mut handle, header.characteristics.bits())?; - WriteBytesExt::write_u64::(&mut handle, header.data_offset)?; - WriteBytesExt::write_u64::(&mut handle, header.data_size)?; - WriteBytesExt::write_u64::(&mut handle, header.index_offset)?; - - self.writer.write_all(&buffer).await?; - Ok(()) - } - - /// Write a CARv1 header. - /// - /// * If the header has already been written, this is a no-op. - pub async fn write_v1_header(&mut self, v1_header: &crate::v1::Header) -> Result<(), Error> { - crate::v1::write_header(&mut self.writer, v1_header).await - } - - /// Write a [`Cid`] and the respective data block. - pub async fn write_block(&mut self, cid: &Cid, block: &Block) -> Result<(), Error> - where - Block: AsRef<[u8]>, - { - crate::v1::write_block(&mut self.writer, cid, block).await - } - - pub async fn write_index(&mut self, index: &Index) -> Result<(), Error> { - crate::v2::index::write_index(&mut self.writer, index).await - } - - /// Flushes and returns the inner writer. - pub async fn finish(mut self) -> Result { - self.writer.flush().await?; - Ok(self.writer) - } - - pub fn get_inner_mut(&mut self) -> &mut W { - &mut self.writer - } -} - -#[cfg(test)] -mod tests { - use std::collections::BTreeSet; - use std::io::Cursor; - use std::panic; - use std::{collections::BTreeMap, io::Seek, ops::Index}; - - use ipld_core::cid::{Cid, CidGeneric}; - use ipld_core::ipld::Ipld; - use ipld_dagpb::{DagPbCodec, PbNode}; - use sha2::Sha256; - use tokio::fs::{File, OpenOptions}; - use tokio::io::BufWriter; - use tokio::io::{AsyncSeekExt, AsyncWriteExt}; - use tokio_stream::StreamExt; - use tokio_util::io::ReaderStream; - - use crate::{ - multihash::generate_multihash, - multihash::MultihashCode, - v1::Reader, - v2::{index::IndexEntry, index::MultiWidthIndex, index::SingleWidthIndex, Header, Writer}, - }; - - const RAW_CODEC: u64 = 0x55; - - impl Writer>> { - fn test_writer() -> Self { - let buffer = Vec::new(); - let buf_writer = BufWriter::new(buffer); - Writer::new(buf_writer) - } - } - - /// Check if two given slices are equal. - /// - /// First checks if the two slices have the same size, - /// then checks each byte-pair. If the slices differ, - /// it will show an error message with the difference index - /// along with a window showing surrounding elements - /// (instead of spamming your terminal like `assert_eq!` does). - fn assert_buffer_eq(lhs: &[u8], rhs: &[u8]) { - assert_eq!(lhs.len(), rhs.len()); - for (i, (l, r)) in lhs.iter().zip(rhs).enumerate() { - let before = i.checked_sub(5).unwrap_or(0); - let after = (i + 5).min(rhs.len()); - assert_eq!( - l, - r, - "difference at index {}\n left: {:02x?}\n right: {:02x?}", - i, - &lhs[before..=after], - &rhs[before..=after], - ) - } - } - - #[tokio::test] - async fn header_lorem() { - let file_contents = tokio::fs::read("tests/fixtures/car_v2/lorem.car") - .await - .unwrap(); - - let mut writer = Writer::test_writer(); - // To simplify testing, the values were extracted using `car inspect` - writer - .write_header(&Header::new(false, 51, 7661, 7712)) - .await - .unwrap(); - - let inner = writer.finish().await.unwrap().into_inner(); - assert_eq!(inner.len(), 51); - assert_eq!(inner, file_contents[..51]); - } - - #[tokio::test] - async fn header_spaceglenda() { - let file_contents = tokio::fs::read("tests/fixtures/car_v2/spaceglenda.car") - .await - .unwrap(); - - let mut writer = Writer::test_writer(); - // To simplify testing, the values were extracted using `car inspect` - writer - .write_header(&Header::new(false, 51, 654402, 654453)) - .await - .unwrap(); - - let inner = writer.finish().await.unwrap().into_inner(); - assert_eq!(inner.len(), 51); - assert_eq!(inner, file_contents[..51]); - } - - // Byte to byte comparison to the lorem.car file - #[tokio::test] - async fn full_lorem() { - let cursor = Cursor::new(vec![]); - let buf_writer = BufWriter::new(cursor); - let mut writer = Writer::new(buf_writer); - - let file_contents = tokio::fs::read("tests/fixtures/original/lorem.txt") - .await - .unwrap(); - let contents_multihash = generate_multihash::(&file_contents); - let root_cid = Cid::new_v1(RAW_CODEC, contents_multihash); - - // To simplify testing, the values were extracted using `car inspect` - writer - .write_header(&Header::new(false, 51, 7661, 7712)) - .await - .unwrap(); - - // We start writing the CARv1 here and keep the stream positions - // so that we can properly index the blocks later - let start_car_v1 = { - let inner = writer.get_inner_mut(); - inner.stream_position().await.unwrap() - }; - - writer - .write_v1_header(&crate::v1::Header::new(vec![root_cid])) - .await - .unwrap(); - - let start_car_v1_data = { - let inner = writer.get_inner_mut(); - inner.stream_position().await.unwrap() - }; - - // There's only one block - writer.write_block(&root_cid, &file_contents).await.unwrap(); - - let inner = writer.get_inner_mut(); - let written = inner.stream_position().await.unwrap(); - assert_eq!(written, 7712); - - let mut mapping = BTreeMap::new(); - mapping.insert( - Sha256::CODE, - MultiWidthIndex::from(IndexEntry::new( - root_cid.hash().digest().to_vec(), - // This detail is "hidden" in the spec even though it's SO IMPORTANT - // See: https://ipld.io/specs/transport/car/carv2/#format-0x0400-indexsorted - // > Individual index entries are the concatenation of the hash digest - // > an an additional 64-bit unsigned little-endian integer indicating - // > the offset of the block from the begining of the CARv1 data payload. - start_car_v1_data - start_car_v1, - )), - ); - let index = crate::v2::index::Index::multihash(mapping); - writer.write_index(&index).await.unwrap(); - - let mut buf_writer = writer.finish().await.unwrap(); - buf_writer.rewind().await.unwrap(); - - let expected_header = tokio::fs::read("tests/fixtures/car_v2/lorem.car") - .await - .unwrap(); - - assert_buffer_eq(&expected_header, buf_writer.get_ref().get_ref()) - } - - // Byte to byte comparison to the spaceglenda.car file - // This test also covers the nitty-gritty details of how to write a CARv2 file with indexes. - #[tokio::test] - async fn full_spaceglenda() { - let cursor = Cursor::new(vec![]); - let buf_writer = BufWriter::new(cursor); - let mut writer = Writer::new(buf_writer); - - let file = File::open("tests/fixtures/original/spaceglenda.jpg") - .await - .unwrap(); - // https://github.com/ipfs/boxo/blob/f4fe8997dcbeb39b3a4842d8f08b34739bfd84a4/chunker/parse.go#L13 - let mut file_chunker = ReaderStream::with_capacity(file, 1024 * 256); - let mut file_blocks = vec![]; - while let Some(chunk) = file_chunker.next().await { - let chunk = chunk.unwrap(); - let multihash = generate_multihash::(&chunk); - let cid = Cid::new_v1(RAW_CODEC, multihash); - file_blocks.push((cid, chunk)); - } - - let links = file_blocks - .iter() - .map(|(cid, block)| { - // NOTE(@jmg-duarte,22/05/2024): really bad API because PbLink is not public... - // https://github.com/ipld/rust-ipld-dagpb/pull/7 - let mut pb_link = BTreeMap::::new(); - pb_link.insert("Hash".to_string(), cid.into()); - pb_link.insert("Name".to_string(), "".into()); - pb_link.insert("Tsize".to_string(), block.len().into()); - (&Ipld::from(pb_link)).try_into() - }) - .collect::>() - .unwrap(); - let node = PbNode { links, data: None }; - let mut node_bytes = node.into_bytes(); - // This is very much cheating but the contents here are the UnixFS wrapper for the node - // TODO(@jmg-duarte,22/05/2024): replace this when we implement unixfs - std::io::Write::write_all( - &mut node_bytes, - &vec![ - 0x0A, 0x12, 0x08, 0x02, 0x18, 0xCE, 0xF5, 0x27, 0x20, 0x80, 0x80, 0x10, 0x20, 0x80, - 0x80, 0x10, 0x20, 0xCE, 0xF5, 0x07, - ], - ) - .unwrap(); - let root_cid = { - let multihash = generate_multihash::(&node_bytes); - Cid::new_v1(0x70, multihash) - }; - - // To simplify testing, the values were extracted using `car inspect` - writer - .write_header(&Header::new(false, 51, 654402, 654453)) - .await - .unwrap(); - - // We start writing the CARv1 here and keep the stream positions - // so that we can properly index the blocks later - let start_car_v1 = { - let inner = writer.get_inner_mut(); - inner.stream_position().await.unwrap() - }; - - writer - .write_v1_header(&crate::v1::Header::new(vec![root_cid])) - .await - .unwrap(); - - let mut offsets = vec![]; - for (cid, block) in &file_blocks { - // write the blocks, saving their positions for the index - offsets.push({ - let inner = writer.get_inner_mut(); - inner.stream_position().await.unwrap() - start_car_v1 - }); - writer.write_block(cid, block).await.unwrap(); - } - // Write the DAG-PB link unifying everything - offsets.push({ - let inner = writer.get_inner_mut(); - inner.stream_position().await.unwrap() - start_car_v1 - }); - writer.write_block(&root_cid, &node_bytes).await.unwrap(); - - let inner = writer.get_inner_mut(); - let written = inner.stream_position().await.unwrap(); - assert_eq!(written, 654453); - - let mut mapping = BTreeMap::new(); - mapping.insert( - Sha256::CODE, - MultiWidthIndex::from( - SingleWidthIndex::try_from( - file_blocks - .iter() - .chain(std::iter::once(&(root_cid, node_bytes.into()))) - .zip(&offsets) - .map(|((cid, _), offset)| { - IndexEntry::new(cid.hash().digest().to_vec(), *offset) - }) - .collect::>(), - ) - .unwrap(), - ), - ); - - let index = crate::v2::index::Index::multihash(mapping); - writer.write_index(&index).await.unwrap(); - - let mut buf_writer = writer.finish().await.unwrap(); - buf_writer.rewind().await.unwrap(); - - let expected_header = tokio::fs::read("tests/fixtures/car_v2/spaceglenda.car") - .await - .unwrap(); - - assert_buffer_eq(&expected_header, buf_writer.get_ref().get_ref()); - } -} +// TODO(@jmg-duarte,22/05/2024): add roundtrip tests diff --git a/storage/mater/src/v2/reader.rs b/storage/mater/src/v2/reader.rs index 0b9e93407..9bfaf5c7b 100644 --- a/storage/mater/src/v2/reader.rs +++ b/storage/mater/src/v2/reader.rs @@ -77,7 +77,8 @@ mod tests { use crate::{ multihash::generate_multihash, - v2::{index::Index, reader::Reader, Error, PRAGMA}, + v2::{index::Index, reader::Reader, PRAGMA}, + Error, }; #[tokio::test] @@ -257,8 +258,9 @@ mod tests { ); loop { + // TODO(@jmg-duarte,22/05/2024): review this match reader.read_block().await { - Ok((cid, _)) => { + Ok((_, _)) => { // Kinda hacky, but better than doing a seek later on let position = reader.get_inner_mut().stream_position().await.unwrap(); let data_end = header.data_offset + header.data_size; diff --git a/storage/mater/src/v2/writer.rs b/storage/mater/src/v2/writer.rs new file mode 100644 index 000000000..788c70195 --- /dev/null +++ b/storage/mater/src/v2/writer.rs @@ -0,0 +1,359 @@ +use byteorder::{LittleEndian, WriteBytesExt}; +use ipld_core::cid::Cid; +use tokio::io::{AsyncWrite, AsyncWriteExt}; + +use crate::Error; + +use crate::v2::index::Index; + +use super::{Header, PRAGMA}; + +/// Low-level CARv2 writer. +// TODO(@jmg-duarte,17/05/2024): add padding support +pub struct Writer +where + W: AsyncWrite + Unpin, +{ + writer: W, +} + +impl Writer +where + W: AsyncWrite + Unpin, +{ + /// Construct a new CARv1 writer. + /// + /// Takes a write into which the data will be written. + pub fn new(writer: W) -> Self { + Self { writer } + } + + /// Write a CARv2 header. + /// + /// * If the header has already been written, this is a no-op. + pub async fn write_header(&mut self, header: &Header) -> Result<(), Error> { + self.writer.write(&PRAGMA).await?; + + let mut buffer = [0; 40]; + let mut handle = &mut buffer[..]; + WriteBytesExt::write_u128::(&mut handle, header.characteristics.bits())?; + WriteBytesExt::write_u64::(&mut handle, header.data_offset)?; + WriteBytesExt::write_u64::(&mut handle, header.data_size)?; + WriteBytesExt::write_u64::(&mut handle, header.index_offset)?; + + self.writer.write_all(&buffer).await?; + Ok(()) + } + + /// Write a CARv1 header. + /// + /// * If the header has already been written, this is a no-op. + pub async fn write_v1_header(&mut self, v1_header: &crate::v1::Header) -> Result<(), Error> { + crate::v1::write_header(&mut self.writer, v1_header).await + } + + /// Write a [`Cid`] and the respective data block. + pub async fn write_block(&mut self, cid: &Cid, block: &Block) -> Result<(), Error> + where + Block: AsRef<[u8]>, + { + crate::v1::write_block(&mut self.writer, cid, block).await + } + + pub async fn write_index(&mut self, index: &Index) -> Result<(), Error> { + crate::v2::index::write_index(&mut self.writer, index).await + } + + /// Flushes and returns the inner writer. + pub async fn finish(mut self) -> Result { + self.writer.flush().await?; + Ok(self.writer) + } + + pub fn get_inner_mut(&mut self) -> &mut W { + &mut self.writer + } +} + +#[cfg(test)] +mod tests { + use std::collections::BTreeSet; + use std::io::Cursor; + use std::panic; + use std::{collections::BTreeMap, io::Seek, ops::Index}; + + use ipld_core::cid::{Cid, CidGeneric}; + use ipld_core::ipld::Ipld; + use ipld_dagpb::{DagPbCodec, PbNode}; + use sha2::Sha256; + use tokio::fs::{File, OpenOptions}; + use tokio::io::BufWriter; + use tokio::io::{AsyncSeekExt, AsyncWriteExt}; + use tokio_stream::StreamExt; + use tokio_util::io::ReaderStream; + + use crate::{ + multihash::generate_multihash, + multihash::MultihashCode, + v1::Reader, + v2::{index::IndexEntry, index::MultiWidthIndex, index::SingleWidthIndex, Header, Writer}, + }; + + const RAW_CODEC: u64 = 0x55; + + impl Writer>> { + fn test_writer() -> Self { + let buffer = Vec::new(); + let buf_writer = BufWriter::new(buffer); + Writer::new(buf_writer) + } + } + + /// Check if two given slices are equal. + /// + /// First checks if the two slices have the same size, + /// then checks each byte-pair. If the slices differ, + /// it will show an error message with the difference index + /// along with a window showing surrounding elements + /// (instead of spamming your terminal like `assert_eq!` does). + fn assert_buffer_eq(lhs: &[u8], rhs: &[u8]) { + assert_eq!(lhs.len(), rhs.len()); + for (i, (l, r)) in lhs.iter().zip(rhs).enumerate() { + let before = i.checked_sub(5).unwrap_or(0); + let after = (i + 5).min(rhs.len()); + assert_eq!( + l, + r, + "difference at index {}\n left: {:02x?}\n right: {:02x?}", + i, + &lhs[before..=after], + &rhs[before..=after], + ) + } + } + + #[tokio::test] + async fn header_lorem() { + let file_contents = tokio::fs::read("tests/fixtures/car_v2/lorem.car") + .await + .unwrap(); + + let mut writer = Writer::test_writer(); + // To simplify testing, the values were extracted using `car inspect` + writer + .write_header(&Header::new(false, 51, 7661, 7712)) + .await + .unwrap(); + + let inner = writer.finish().await.unwrap().into_inner(); + assert_eq!(inner.len(), 51); + assert_eq!(inner, file_contents[..51]); + } + + #[tokio::test] + async fn header_spaceglenda() { + let file_contents = tokio::fs::read("tests/fixtures/car_v2/spaceglenda.car") + .await + .unwrap(); + + let mut writer = Writer::test_writer(); + // To simplify testing, the values were extracted using `car inspect` + writer + .write_header(&Header::new(false, 51, 654402, 654453)) + .await + .unwrap(); + + let inner = writer.finish().await.unwrap().into_inner(); + assert_eq!(inner.len(), 51); + assert_eq!(inner, file_contents[..51]); + } + + // Byte to byte comparison to the lorem.car file + #[tokio::test] + async fn full_lorem() { + let cursor = Cursor::new(vec![]); + let buf_writer = BufWriter::new(cursor); + let mut writer = Writer::new(buf_writer); + + let file_contents = tokio::fs::read("tests/fixtures/original/lorem.txt") + .await + .unwrap(); + let contents_multihash = generate_multihash::(&file_contents); + let root_cid = Cid::new_v1(RAW_CODEC, contents_multihash); + + // To simplify testing, the values were extracted using `car inspect` + writer + .write_header(&Header::new(false, 51, 7661, 7712)) + .await + .unwrap(); + + // We start writing the CARv1 here and keep the stream positions + // so that we can properly index the blocks later + let start_car_v1 = { + let inner = writer.get_inner_mut(); + inner.stream_position().await.unwrap() + }; + + writer + .write_v1_header(&crate::v1::Header::new(vec![root_cid])) + .await + .unwrap(); + + let start_car_v1_data = { + let inner = writer.get_inner_mut(); + inner.stream_position().await.unwrap() + }; + + // There's only one block + writer.write_block(&root_cid, &file_contents).await.unwrap(); + + let inner = writer.get_inner_mut(); + let written = inner.stream_position().await.unwrap(); + assert_eq!(written, 7712); + + let mut mapping = BTreeMap::new(); + mapping.insert( + Sha256::CODE, + MultiWidthIndex::from(IndexEntry::new( + root_cid.hash().digest().to_vec(), + // This detail is "hidden" in the spec even though it's SO IMPORTANT + // See: https://ipld.io/specs/transport/car/carv2/#format-0x0400-indexsorted + // > Individual index entries are the concatenation of the hash digest + // > an an additional 64-bit unsigned little-endian integer indicating + // > the offset of the block from the begining of the CARv1 data payload. + start_car_v1_data - start_car_v1, + )), + ); + let index = crate::v2::index::Index::multihash(mapping); + writer.write_index(&index).await.unwrap(); + + let mut buf_writer = writer.finish().await.unwrap(); + buf_writer.rewind().await.unwrap(); + + let expected_header = tokio::fs::read("tests/fixtures/car_v2/lorem.car") + .await + .unwrap(); + + assert_buffer_eq(&expected_header, buf_writer.get_ref().get_ref()) + } + + // Byte to byte comparison to the spaceglenda.car file + // This test also covers the nitty-gritty details of how to write a CARv2 file with indexes. + #[tokio::test] + async fn full_spaceglenda() { + let cursor = Cursor::new(vec![]); + let buf_writer = BufWriter::new(cursor); + let mut writer = Writer::new(buf_writer); + + let file = File::open("tests/fixtures/original/spaceglenda.jpg") + .await + .unwrap(); + // https://github.com/ipfs/boxo/blob/f4fe8997dcbeb39b3a4842d8f08b34739bfd84a4/chunker/parse.go#L13 + let mut file_chunker = ReaderStream::with_capacity(file, 1024 * 256); + let mut file_blocks = vec![]; + while let Some(chunk) = file_chunker.next().await { + let chunk = chunk.unwrap(); + let multihash = generate_multihash::(&chunk); + let cid = Cid::new_v1(RAW_CODEC, multihash); + file_blocks.push((cid, chunk)); + } + + let links = file_blocks + .iter() + .map(|(cid, block)| { + // NOTE(@jmg-duarte,22/05/2024): really bad API because PbLink is not public... + // https://github.com/ipld/rust-ipld-dagpb/pull/7 + let mut pb_link = BTreeMap::::new(); + pb_link.insert("Hash".to_string(), cid.into()); + pb_link.insert("Name".to_string(), "".into()); + pb_link.insert("Tsize".to_string(), block.len().into()); + (&Ipld::from(pb_link)).try_into() + }) + .collect::>() + .unwrap(); + let node = PbNode { links, data: None }; + let mut node_bytes = node.into_bytes(); + // This is very much cheating but the contents here are the UnixFS wrapper for the node + // TODO(@jmg-duarte,22/05/2024): replace this when we implement unixfs + std::io::Write::write_all( + &mut node_bytes, + &vec![ + 0x0A, 0x12, 0x08, 0x02, 0x18, 0xCE, 0xF5, 0x27, 0x20, 0x80, 0x80, 0x10, 0x20, 0x80, + 0x80, 0x10, 0x20, 0xCE, 0xF5, 0x07, + ], + ) + .unwrap(); + let root_cid = { + let multihash = generate_multihash::(&node_bytes); + Cid::new_v1(0x70, multihash) + }; + + // To simplify testing, the values were extracted using `car inspect` + writer + .write_header(&Header::new(false, 51, 654402, 654453)) + .await + .unwrap(); + + // We start writing the CARv1 here and keep the stream positions + // so that we can properly index the blocks later + let start_car_v1 = { + let inner = writer.get_inner_mut(); + inner.stream_position().await.unwrap() + }; + + writer + .write_v1_header(&crate::v1::Header::new(vec![root_cid])) + .await + .unwrap(); + + let mut offsets = vec![]; + for (cid, block) in &file_blocks { + // write the blocks, saving their positions for the index + offsets.push({ + let inner = writer.get_inner_mut(); + inner.stream_position().await.unwrap() - start_car_v1 + }); + writer.write_block(cid, block).await.unwrap(); + } + // Write the DAG-PB link unifying everything + offsets.push({ + let inner = writer.get_inner_mut(); + inner.stream_position().await.unwrap() - start_car_v1 + }); + writer.write_block(&root_cid, &node_bytes).await.unwrap(); + + let inner = writer.get_inner_mut(); + let written = inner.stream_position().await.unwrap(); + assert_eq!(written, 654453); + + let mut mapping = BTreeMap::new(); + mapping.insert( + Sha256::CODE, + MultiWidthIndex::from( + SingleWidthIndex::try_from( + file_blocks + .iter() + .chain(std::iter::once(&(root_cid, node_bytes.into()))) + .zip(&offsets) + .map(|((cid, _), offset)| { + IndexEntry::new(cid.hash().digest().to_vec(), *offset) + }) + .collect::>(), + ) + .unwrap(), + ), + ); + + let index = crate::v2::index::Index::multihash(mapping); + writer.write_index(&index).await.unwrap(); + + let mut buf_writer = writer.finish().await.unwrap(); + buf_writer.rewind().await.unwrap(); + + let expected_header = tokio::fs::read("tests/fixtures/car_v2/spaceglenda.car") + .await + .unwrap(); + + assert_buffer_eq(&expected_header, buf_writer.get_ref().get_ref()); + } +} From 65e17ba917315384564a762f41cf909fa5a084b7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jose=CC=81=20Duarte?= Date: Wed, 22 May 2024 17:34:33 +0100 Subject: [PATCH 17/63] docs: fix intra-docs link --- storage/mater/src/lib.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/storage/mater/src/lib.rs b/storage/mater/src/lib.rs index 3636b2572..211fb8745 100644 --- a/storage/mater/src/lib.rs +++ b/storage/mater/src/lib.rs @@ -25,8 +25,8 @@ pub enum Error { CarV2Error, /// Unknown type of index. Supported indexes are - /// [`MultiWidthIndex`](`crate::car::v2::MultiWidthIndex`) and - /// [`MultihashIndexSorted`](`crate::car::v2::MultihashIndexSorted`). + /// [`MultiWidthIndex`](`crate::v2::MultiWidthIndex`) and + /// [`MultihashIndexSorted`](`crate::v2::MultihashIndexSorted`). #[error("unknown index type {0}")] UnknownIndexError(u64), From f726a272470a8315ea46f3c124fbc35cafea6563 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jose=CC=81=20Duarte?= Date: Wed, 22 May 2024 17:35:53 +0100 Subject: [PATCH 18/63] style: cargo fmt && cargo fix --- storage/mater/src/v1/reader.rs | 4 ++-- storage/mater/src/v1/writer.rs | 16 ++++------------ storage/mater/src/v2/index.rs | 8 ++------ storage/mater/src/v2/mod.rs | 3 +-- storage/mater/src/v2/writer.rs | 33 ++++++++++++++------------------- 5 files changed, 23 insertions(+), 41 deletions(-) diff --git a/storage/mater/src/v1/reader.rs b/storage/mater/src/v1/reader.rs index 5eb49eb89..5c0e26ab4 100644 --- a/storage/mater/src/v1/reader.rs +++ b/storage/mater/src/v1/reader.rs @@ -140,9 +140,9 @@ where #[cfg(test)] mod tests { - use std::{io::Cursor, path::Path}; + use std::io::Cursor; - use ipld_core::cid::{multihash::Multihash, Cid, Version}; + use ipld_core::cid::{Cid, Version}; use sha2::Sha256; use tokio::{fs::File, io::BufReader}; diff --git a/storage/mater/src/v1/writer.rs b/storage/mater/src/v1/writer.rs index cef764918..845508294 100644 --- a/storage/mater/src/v1/writer.rs +++ b/storage/mater/src/v1/writer.rs @@ -1,5 +1,3 @@ -use std::io::Cursor; - use integer_encoding::VarIntAsyncWriter; use ipld_core::{cid::Cid, codec::Codec}; use serde_ipld_dagcbor::codec::DagCborCodec; @@ -83,20 +81,14 @@ where #[cfg(test)] mod tests { - use std::{io::Cursor, path::Path}; + use std::path::Path; - use ipld_core::cid::{multihash::Multihash, Cid, Version}; + use ipld_core::cid::{multihash::Multihash, Cid}; use sha2::Sha256; - use tokio::{ - fs::File, - io::{BufReader, BufWriter}, - }; + use tokio::io::BufWriter; use super::Writer; - use crate::{ - multihash::generate_multihash, - v1::{Header, Reader}, - }; + use crate::{multihash::generate_multihash, v1::Header}; const RAW_CODEC: u64 = 0x55; diff --git a/storage/mater/src/v2/index.rs b/storage/mater/src/v2/index.rs index 3432aa666..721ef40f8 100644 --- a/storage/mater/src/v2/index.rs +++ b/storage/mater/src/v2/index.rs @@ -311,13 +311,9 @@ mod tests { io::Cursor, }; - use digest::generic_array::GenericArray; - use rand::{random, Fill, Rng}; + use rand::{random, Rng}; use sha2::{Digest, Sha256, Sha512}; - use tokio::{ - fs::File, - io::{AsyncReadExt, AsyncSeekExt, BufReader, ReadBuf}, - }; + use tokio::{fs::File, io::AsyncSeekExt}; use crate::{ multihash::{generate_multihash, MultihashCode}, diff --git a/storage/mater/src/v2/mod.rs b/storage/mater/src/v2/mod.rs index e6297f2f9..503919cfd 100644 --- a/storage/mater/src/v2/mod.rs +++ b/storage/mater/src/v2/mod.rs @@ -2,12 +2,11 @@ mod index; mod reader; mod writer; +use bitflags::bitflags; pub use index::{Index, IndexEntry, MultiWidthIndex, MultihashIndexSorted, SingleWidthIndex}; pub use reader::Reader; pub use writer::Writer; -use bitflags::bitflags; - /// The pragma for a CARv2. This is also a valid CARv1 header, with version 2 and no root CIDs. pub const PRAGMA: [u8; 11] = [ 0x0a, // unit(10) diff --git a/storage/mater/src/v2/writer.rs b/storage/mater/src/v2/writer.rs index 788c70195..0555faecc 100644 --- a/storage/mater/src/v2/writer.rs +++ b/storage/mater/src/v2/writer.rs @@ -2,11 +2,8 @@ use byteorder::{LittleEndian, WriteBytesExt}; use ipld_core::cid::Cid; use tokio::io::{AsyncWrite, AsyncWriteExt}; -use crate::Error; - -use crate::v2::index::Index; - use super::{Header, PRAGMA}; +use crate::{v2::index::Index, Error}; /// Low-level CARv2 writer. // TODO(@jmg-duarte,17/05/2024): add padding support @@ -77,26 +74,24 @@ where #[cfg(test)] mod tests { - use std::collections::BTreeSet; - use std::io::Cursor; - use std::panic; - use std::{collections::BTreeMap, io::Seek, ops::Index}; - - use ipld_core::cid::{Cid, CidGeneric}; - use ipld_core::ipld::Ipld; - use ipld_dagpb::{DagPbCodec, PbNode}; + use std::{collections::BTreeMap, io::Cursor}; + + use ipld_core::{cid::Cid, ipld::Ipld}; + use ipld_dagpb::PbNode; use sha2::Sha256; - use tokio::fs::{File, OpenOptions}; - use tokio::io::BufWriter; - use tokio::io::{AsyncSeekExt, AsyncWriteExt}; + use tokio::{ + fs::File, + io::{AsyncSeekExt, BufWriter}, + }; use tokio_stream::StreamExt; use tokio_util::io::ReaderStream; use crate::{ - multihash::generate_multihash, - multihash::MultihashCode, - v1::Reader, - v2::{index::IndexEntry, index::MultiWidthIndex, index::SingleWidthIndex, Header, Writer}, + multihash::{generate_multihash, MultihashCode}, + v2::{ + index::{IndexEntry, MultiWidthIndex, SingleWidthIndex}, + Header, Writer, + }, }; const RAW_CODEC: u64 = 0x55; From caf6fcdb101b7db02454486a37672d6f8875bfc3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jose=CC=81=20Duarte?= Date: Wed, 22 May 2024 17:38:23 +0100 Subject: [PATCH 19/63] style: taplo fmt --- storage/mater/Cargo.toml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/storage/mater/Cargo.toml b/storage/mater/Cargo.toml index ded166241..b74173017 100644 --- a/storage/mater/Cargo.toml +++ b/storage/mater/Cargo.toml @@ -1,21 +1,23 @@ [package] -name = "mater" # name WIP -version = "0.1.0" authors.workspace = true edition.workspace = true homepage.workspace = true license-file.workspace = true +name = "mater" # name WIP repository.workspace = true +version = "0.1.0" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] # TODO(@jmg-duarte,15/05/2024): reduce the required features +bitflags = { workspace = true } byteorder = { workspace = true, features = ["i128"] } clap = { workspace = true, features = ["derive"] } digest = { workspace = true } integer-encoding = { workspace = true, features = ["tokio_async"] } ipld-core = { workspace = true, features = ["serde"] } +ipld-dagpb = { workspace = true } quick-protobuf = { workspace = true } rand = { workspace = true } rs_merkle = { workspace = true } @@ -24,10 +26,8 @@ serde_ipld_dagcbor = { workspace = true } sha2 = { workspace = true } thiserror = { workspace = true } tokio = { workspace = true, features = ["full"] } -bitflags = { workspace = true } -tokio-util = { workspace = true, features = ["io"] } tokio-stream = { workspace = true } -ipld-dagpb = { workspace = true } +tokio-util = { workspace = true, features = ["io"] } [lints] workspace = true From 4d96498b455b47c6040fd52dc059e8cab67f1956 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jose=CC=81=20Duarte?= Date: Thu, 23 May 2024 09:18:19 +0100 Subject: [PATCH 20/63] fix(file-storage): replace read_cid with Cid::read_bytes --- storage/mater/src/v1/reader.rs | 100 +++------------------------------ 1 file changed, 7 insertions(+), 93 deletions(-) diff --git a/storage/mater/src/v1/reader.rs b/storage/mater/src/v1/reader.rs index 5c0e26ab4..e0e4c4616 100644 --- a/storage/mater/src/v1/reader.rs +++ b/storage/mater/src/v1/reader.rs @@ -1,66 +1,12 @@ -use std::io::{Cursor, Seek}; - -use byteorder::ReadBytesExt; -use integer_encoding::{VarIntAsyncReader, VarIntReader}; -use ipld_core::{ - cid::{multihash::Multihash, Cid}, - codec::Codec, -}; +use std::io::Cursor; + +use integer_encoding::VarIntAsyncReader; +use ipld_core::{cid::Cid, codec::Codec}; use serde_ipld_dagcbor::codec::DagCborCodec; use tokio::io::{AsyncRead, AsyncReadExt}; use crate::{v1::Header, v2::PRAGMA, Error}; -// `bytes::Buf` might be more useful here -// https://docs.rs/bytes/1.6.0/bytes/buf/trait.Buf.html -fn read_cid_v1(cursor: &mut Cursor) -> Result -where - B: AsRef<[u8]>, -{ - let cid_version: u64 = cursor.read_varint()?; - debug_assert_eq!(cid_version, 1); - let codec_code: u64 = cursor.read_varint()?; - - let hash_function_code: u64 = cursor.read_varint()?; - let hash_digest_size: usize = cursor.read_varint()?; - - let cursor_position = cursor.position() as usize; - let hash_digest_slice = - &cursor.get_ref().as_ref()[cursor_position..(cursor_position + hash_digest_size)]; - - // At this point, the cursor holds an allocated buffer - // Reading into a new buffer would require the new buffer to be allocated - // Taking the slice directly from the inner buffer and setting the position avoids that allocation - let multihash = Multihash::wrap(hash_function_code, hash_digest_slice)?; - cursor.set_position((cursor_position + hash_digest_size) as u64); - - Ok(Cid::new_v1(codec_code, multihash)) -} - -fn read_cid(cursor: &mut Cursor) -> Result -where - B: AsRef<[u8]>, -{ - // Attempt to read it as a CIDv0 first - let cid_v0_hash_code = cursor.read_u8()? as u64; - let cid_v0_hash_length = cursor.read_u8()? as usize; - - if cid_v0_hash_code == 0x12 && cid_v0_hash_length == 0x20 { - let cursor_position = cursor.position() as usize; - let multihash = Multihash::wrap( - cid_v0_hash_code, - &cursor.get_ref().as_ref()[cursor_position..(cursor_position + cid_v0_hash_length)], - )?; - return Ok(Cid::new_v0(multihash)?); - } - - // Couldn't read a CIDv0, means it is V1 - // rewind to regain the two bytes we read - cursor.rewind()?; - - read_cid_v1(cursor) -} - pub(crate) async fn read_header(mut reader: R) -> Result where R: AsyncRead + Unpin, @@ -94,7 +40,7 @@ where // We're cheating to get Seek let mut full_block_cursor = Cursor::new(full_block_buffer); - let cid = read_cid(&mut full_block_cursor)?; + let cid = Cid::read_bytes(&mut full_block_cursor)?; let data_start_position = full_block_cursor.position() as usize; let mut full_block_buffer = full_block_cursor.into_inner(); @@ -140,46 +86,14 @@ where #[cfg(test)] mod tests { - use std::io::Cursor; - - use ipld_core::cid::{Cid, Version}; + use ipld_core::cid::Cid; use sha2::Sha256; use tokio::{fs::File, io::BufReader}; - use crate::{ - multihash::generate_multihash, - v1::reader::{read_cid, Reader}, - Error, - }; + use crate::{multihash::generate_multihash, v1::reader::Reader, Error}; const RAW_CODEC: u64 = 0x55; - #[test] - fn read_cid_v0_roundtrip() { - let contents = std::fs::read("tests/fixtures/original/lorem.txt").unwrap(); - let contents_multihash = generate_multihash::(&contents); - let contents_cid = Cid::new_v0(contents_multihash).unwrap(); - let encoded_cid = contents_cid.to_bytes(); - let mut cursor = Cursor::new(encoded_cid); - - let cid = read_cid(&mut cursor).unwrap(); - assert_eq!(cid.version(), Version::V0); - assert_eq!(cid.hash(), &contents_multihash); - } - - #[test] - fn read_cid_v1_roundtrip() { - let contents = std::fs::read("tests/fixtures/original/lorem.txt").unwrap(); - let contents_multihash = generate_multihash::(&contents); - let contents_cid = Cid::new_v1(RAW_CODEC, contents_multihash); - let encoded_cid = contents_cid.to_bytes(); - let mut cursor = Cursor::new(encoded_cid); - - let cid = super::read_cid_v1(&mut cursor).unwrap(); - assert_eq!(cid.version(), Version::V1); - assert_eq!(cid.hash(), &contents_multihash); - } - #[tokio::test] async fn header_reader() { let contents = tokio::fs::read("tests/fixtures/original/lorem.txt") From 8279f93b2ea3cb9c735f4c3e6fe561e0426ce86c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jose=CC=81=20Duarte?= Date: Thu, 23 May 2024 09:25:29 +0100 Subject: [PATCH 21/63] fix(file-storage): reduce dependencies They may come back for the UnixFS or other features --- Cargo.lock | 16 ++-------------- Cargo.toml | 2 +- storage/mater/Cargo.toml | 16 +++++++++------- 3 files changed, 12 insertions(+), 22 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index f1f1a2311..8c3c81d17 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4461,9 +4461,9 @@ dependencies = [ [[package]] name = "ipld-dagpb" -version = "0.2.0" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "500af0d645ad3c26b544d2ec77c87fefec9319f5eda567d0993b9db59708994f" +checksum = "c5eb3c08f1508fa62ffe1a805aafa116d2eb034b3542c85596db132f279abc47" dependencies = [ "bytes", "ipld-core", @@ -5524,14 +5524,11 @@ version = "0.1.0" dependencies = [ "bitflags 2.5.0", "byteorder", - "clap", "digest 0.10.7", "integer-encoding 4.0.0", "ipld-core", "ipld-dagpb", - "quick-protobuf", "rand 0.8.5", - "rs_merkle", "serde", "serde_ipld_dagcbor", "sha2 0.10.8", @@ -10037,15 +10034,6 @@ dependencies = [ "windows-sys 0.48.0", ] -[[package]] -name = "rs_merkle" -version = "1.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b241d2e59b74ef9e98d94c78c47623d04c8392abaf82014dfd372a16041128f" -dependencies = [ - "sha2 0.10.8", -] - [[package]] name = "rtnetlink" version = "0.10.1" diff --git a/Cargo.toml b/Cargo.toml index 44845b816..19649e96d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -63,7 +63,7 @@ byteorder = "1.5.0" bitflags = "2.5.0" tokio-util = "0.7.11" tokio-stream = "0.1.15" -ipld-dagpb = "0.2.0" +ipld-dagpb = "0.2.1" # Local polka-storage-runtime = { path = "runtime" } diff --git a/storage/mater/Cargo.toml b/storage/mater/Cargo.toml index b74173017..f55f36ba6 100644 --- a/storage/mater/Cargo.toml +++ b/storage/mater/Cargo.toml @@ -13,21 +13,23 @@ version = "0.1.0" # TODO(@jmg-duarte,15/05/2024): reduce the required features bitflags = { workspace = true } byteorder = { workspace = true, features = ["i128"] } -clap = { workspace = true, features = ["derive"] } -digest = { workspace = true } integer-encoding = { workspace = true, features = ["tokio_async"] } ipld-core = { workspace = true, features = ["serde"] } -ipld-dagpb = { workspace = true } -quick-protobuf = { workspace = true } -rand = { workspace = true } -rs_merkle = { workspace = true } serde = { workspace = true, features = ["derive"] } serde_ipld_dagcbor = { workspace = true } -sha2 = { workspace = true } thiserror = { workspace = true } tokio = { workspace = true, features = ["full"] } + +[dev-dependencies] +digest = { workspace = true } +ipld-dagpb = { workspace = true } +rand = { workspace = true } +sha2 = { workspace = true } tokio-stream = { workspace = true } tokio-util = { workspace = true, features = ["io"] } +# rs_merkle = { workspace = true } +# quick-protobuf = { workspace = true } + [lints] workspace = true From ae2ef61ae317edc3b685e76ebddb7c40d3febd56 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jose=CC=81=20Duarte?= Date: Thu, 23 May 2024 09:30:12 +0100 Subject: [PATCH 22/63] docs: improve PRAGMA description --- storage/mater/src/v2/mod.rs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/storage/mater/src/v2/mod.rs b/storage/mater/src/v2/mod.rs index 503919cfd..ca79b32ba 100644 --- a/storage/mater/src/v2/mod.rs +++ b/storage/mater/src/v2/mod.rs @@ -8,6 +8,9 @@ pub use reader::Reader; pub use writer::Writer; /// The pragma for a CARv2. This is also a valid CARv1 header, with version 2 and no root CIDs. +/// +/// For more information, check the specification: +/// https://ipld.io/specs/transport/car/carv2/#pragma pub const PRAGMA: [u8; 11] = [ 0x0a, // unit(10) 0xa1, // map(1) From 6044ed801902290717f5a6be50ffc31fd7f17018 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jose=CC=81=20Duarte?= Date: Thu, 23 May 2024 09:32:22 +0100 Subject: [PATCH 23/63] fix(file-storage): add EMPTY default --- storage/mater/src/v2/mod.rs | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/storage/mater/src/v2/mod.rs b/storage/mater/src/v2/mod.rs index ca79b32ba..9f37fdb80 100644 --- a/storage/mater/src/v2/mod.rs +++ b/storage/mater/src/v2/mod.rs @@ -22,6 +22,7 @@ pub const PRAGMA: [u8; 11] = [ bitflags! { /// Characteristics of the enclosed data. pub struct Characteristics: u128 { + const EMPTY = 0; const FULLY_INDEXED = 1 << 127; } } @@ -32,7 +33,7 @@ impl Characteristics { if fully_indexed { Self::FULLY_INDEXED } else { - Self::empty() + Self::EMPTY } } @@ -43,6 +44,12 @@ impl Characteristics { } } +impl Default for Characteristics { + fn default() -> Self { + Self::EMPTY + } +} + /// Low-level CARv2 header. pub struct Header { /// Describes certain features of the enclosed data. From ef494470fe0106d7d7640284f778cbf1976c75e1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jose=CC=81=20Duarte?= Date: Thu, 23 May 2024 09:42:28 +0100 Subject: [PATCH 24/63] fix(file-storage): error on invalid V1 headers Previously, the `read_header` function would trust that the caller knew what they were doing. It no longer does that. --- storage/mater/src/lib.rs | 10 ++++++++++ storage/mater/src/v1/reader.rs | 11 +++++++++-- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/storage/mater/src/lib.rs b/storage/mater/src/lib.rs index 211fb8745..f35db6436 100644 --- a/storage/mater/src/lib.rs +++ b/storage/mater/src/lib.rs @@ -21,6 +21,16 @@ pub enum Error { #[error(transparent)] MultihashError(#[from] ipld_core::cid::multihash::Error), + #[error( + "invalid version, expected version {expected}, but received version {received} instead" + )] + VersionMismatchError { expected: u8, received: u8 }, + + /// According to the [specification](https://ipld.io/specs/transport/car/carv1/#constraints) + /// CAR files MUST have **one or more** CID roots. + #[error("CAR file must have roots")] + EmptyRootsError, + #[error("trying to read V2")] CarV2Error, diff --git a/storage/mater/src/v1/reader.rs b/storage/mater/src/v1/reader.rs index e0e4c4616..69258353d 100644 --- a/storage/mater/src/v1/reader.rs +++ b/storage/mater/src/v1/reader.rs @@ -25,8 +25,15 @@ where } let header: Header = DagCborCodec::decode_from_slice(&header_buffer)?; - debug_assert!(header.version == 1, "header version is not 1"); - debug_assert!(!header.roots.is_empty(), "header does not have roots"); + if header.version == 1 { + return Err(Error::VersionMismatchError { + expected: 1, + received: header.version, + }); + } + if header.roots.is_empty() { + return Err(Error::EmptyRootsError); + } Ok(header) } From 6a35dacddc554b00ab67776dd16ce38b7dc7b8fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jose=CC=81=20Duarte?= Date: Thu, 23 May 2024 09:45:54 +0100 Subject: [PATCH 25/63] fix(file-storage): further smooth the Error API And fix a dumb bug on `read_header` --- storage/mater/src/lib.rs | 3 --- storage/mater/src/v1/reader.rs | 15 ++++++++++++--- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/storage/mater/src/lib.rs b/storage/mater/src/lib.rs index f35db6436..bce2a3206 100644 --- a/storage/mater/src/lib.rs +++ b/storage/mater/src/lib.rs @@ -31,9 +31,6 @@ pub enum Error { #[error("CAR file must have roots")] EmptyRootsError, - #[error("trying to read V2")] - CarV2Error, - /// Unknown type of index. Supported indexes are /// [`MultiWidthIndex`](`crate::v2::MultiWidthIndex`) and /// [`MultihashIndexSorted`](`crate::v2::MultihashIndexSorted`). diff --git a/storage/mater/src/v1/reader.rs b/storage/mater/src/v1/reader.rs index 69258353d..29ab1a126 100644 --- a/storage/mater/src/v1/reader.rs +++ b/storage/mater/src/v1/reader.rs @@ -21,11 +21,14 @@ where // > decode since it does not vary for the CARv2 format. // We're skipping the first byte because we already read the length if header_buffer.starts_with(&PRAGMA[1..]) { - return Err(Error::CarV2Error); + return Err(Error::VersionMismatchError { + expected: 1, + received: 2, + }); } let header: Header = DagCborCodec::decode_from_slice(&header_buffer)?; - if header.version == 1 { + if header.version != 1 { return Err(Error::VersionMismatchError { expected: 1, received: header.version, @@ -149,7 +152,13 @@ mod tests { let mut reader = Reader::new(file); let header = reader.read_header().await; println!("{:?}", header); - assert!(matches!(header, Err(Error::CarV2Error))); + assert!(matches!( + header, + Err(Error::VersionMismatchError { + expected: 1, + received: 2 + }) + )); } // TODO(@jmg-duarte,19/05/2024): add more tests From 9f63d2c925f748efdfe7f331565780b5a34ea8cf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jose=CC=81=20Duarte?= Date: Thu, 23 May 2024 09:51:37 +0100 Subject: [PATCH 26/63] fix(file-storage): error on unknown characteristics --- storage/mater/src/lib.rs | 3 +++ storage/mater/src/v2/reader.rs | 5 +++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/storage/mater/src/lib.rs b/storage/mater/src/lib.rs index bce2a3206..b5185ac39 100644 --- a/storage/mater/src/lib.rs +++ b/storage/mater/src/lib.rs @@ -44,6 +44,9 @@ pub enum Error { /// Cannot know width or count from an empty vector. #[error("cannot create an index out of an empty `Vec`")] EmptyIndexError, + + #[error("unknown characteristics were set: {0}")] + UnknownCharacteristicsError(u128), } #[cfg(test)] diff --git a/storage/mater/src/v2/reader.rs b/storage/mater/src/v2/reader.rs index 9bfaf5c7b..23953682c 100644 --- a/storage/mater/src/v2/reader.rs +++ b/storage/mater/src/v2/reader.rs @@ -35,8 +35,9 @@ where // Even though the standard doesn't explicitly state endianness, go-car does // https://github.com/ipld/go-car/blob/45b81c1cc5117b3340dfdb025afeca90bfbe8d86/v2/car.go#L51-L69 let characteristics_bitfield = self.reader.read_u128_le().await?; - // NOTE(@jmg-duarte,19/05/2024): unsure if we should fail on unknown bits, truncate them, or ignore - let characteristics = Characteristics::from_bits_retain(characteristics_bitfield); + + let characteristics = Characteristics::from_bits(characteristics_bitfield) + .ok_or(Error::UnknownCharacteristicsError(characteristics_bitfield))?; let data_offset = self.reader.read_u64_le().await?; let data_size = self.reader.read_u64_le().await?; From 71fcbc3102860a6af7605b38ef9c03d520b896c1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jose=CC=81=20Duarte?= Date: Thu, 23 May 2024 09:54:59 +0100 Subject: [PATCH 27/63] fix(file-storage): improve docstring and error message --- storage/mater/src/lib.rs | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/storage/mater/src/lib.rs b/storage/mater/src/lib.rs index b5185ac39..89ac92f43 100644 --- a/storage/mater/src/lib.rs +++ b/storage/mater/src/lib.rs @@ -21,9 +21,7 @@ pub enum Error { #[error(transparent)] MultihashError(#[from] ipld_core::cid::multihash::Error), - #[error( - "invalid version, expected version {expected}, but received version {received} instead" - )] + #[error("expected version {expected}, but received version {received} instead")] VersionMismatchError { expected: u8, received: u8 }, /// According to the [specification](https://ipld.io/specs/transport/car/carv1/#constraints) @@ -45,6 +43,10 @@ pub enum Error { #[error("cannot create an index out of an empty `Vec`")] EmptyIndexError, + /// The [specification](https://ipld.io/specs/transport/car/carv2/#characteristics) + /// does not discuss how to handle incoming characteristics + /// — i.e. if we should ignore them, truncate them or return an error — + /// we decided on returning an error. #[error("unknown characteristics were set: {0}")] UnknownCharacteristicsError(u128), } From 5ba4ca8512b2251feefaaea3309fedfbbbe94e05 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jose=CC=81=20Duarte?= Date: Thu, 23 May 2024 10:01:08 +0100 Subject: [PATCH 28/63] fix(file-storage): validate the incoming V2 pragma --- storage/mater/src/lib.rs | 6 ++++++ storage/mater/src/v2/reader.rs | 9 +++++++-- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/storage/mater/src/lib.rs b/storage/mater/src/lib.rs index 89ac92f43..4f64338aa 100644 --- a/storage/mater/src/lib.rs +++ b/storage/mater/src/lib.rs @@ -49,6 +49,12 @@ pub enum Error { /// we decided on returning an error. #[error("unknown characteristics were set: {0}")] UnknownCharacteristicsError(u128), + + /// According to the [specification](https://ipld.io/specs/transport/car/carv2/#pragma) + /// the pragma is composed of a pre-defined list of bytes, + /// if the received pragma is not the same, we return an error. + #[error("received an invalid pragma: {0:?}")] + InvalidPragmaError(Vec), } #[cfg(test)] diff --git a/storage/mater/src/v2/reader.rs b/storage/mater/src/v2/reader.rs index 23953682c..636f6b19b 100644 --- a/storage/mater/src/v2/reader.rs +++ b/storage/mater/src/v2/reader.rs @@ -22,11 +22,16 @@ impl Reader where R: AsyncRead + Unpin, { + /// Read the CARv2 pragma. + /// + /// This function fails if the pragma does not match the one defined in the + /// [specification](https://ipld.io/specs/transport/car/carv2/#pragma). pub async fn read_pragma(&mut self) -> Result, Error> { let mut pragma_buffer = vec![0; PRAGMA.len()]; self.reader.read_exact(&mut pragma_buffer).await?; - // NOTE(@jmg-duarte,20/05/2024): Should we validate the pragma here? - debug_assert_eq!(pragma_buffer, PRAGMA); + if pragma_buffer != PRAGMA { + return Err(Error::InvalidPragmaError(pragma_buffer)); + } Ok(pragma_buffer) } From c8be17d2129cb7e66b2435ffc49d314c0fba0afe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jose=CC=81=20Duarte?= Date: Thu, 23 May 2024 10:11:42 +0100 Subject: [PATCH 29/63] fix(file-storage): expose `ipld_core::cid::Cid` --- storage/mater/src/lib.rs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/storage/mater/src/lib.rs b/storage/mater/src/lib.rs index 4f64338aa..2e2616bd7 100644 --- a/storage/mater/src/lib.rs +++ b/storage/mater/src/lib.rs @@ -7,6 +7,9 @@ pub use v2::{ MultihashIndexSorted, Reader as CarV2Reader, SingleWidthIndex, Writer as CarV2Writer, }; +// We need to expose this because `read_block` returns `(Cid, Vec)`. +pub use ipld_core::cid::Cid; + #[derive(Debug, thiserror::Error)] pub enum Error { #[error(transparent)] From 5306eab7825373d17c1ba89fd19ef8b002d65868 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jose=CC=81=20Duarte?= Date: Thu, 23 May 2024 10:12:00 +0100 Subject: [PATCH 30/63] docs(file-storage): improve v2::Reader docs --- storage/mater/src/v2/reader.rs | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/storage/mater/src/v2/reader.rs b/storage/mater/src/v2/reader.rs index 636f6b19b..3cc5bc528 100644 --- a/storage/mater/src/v2/reader.rs +++ b/storage/mater/src/v2/reader.rs @@ -13,6 +13,7 @@ pub struct Reader { } impl Reader { + /// Constructs a new [`CarV2Reader`][`crate::v2::Reader`]. pub fn new(reader: R) -> Self { Self { reader } } @@ -35,7 +36,12 @@ where Ok(pragma_buffer) } - /// Read the [`Header`]. + /// Read the [`CarV2Header`](`crate::v2::Header`). + /// + /// This function fails if there are set bits that are not covered in the + /// [characteristics specification](https://ipld.io/specs/transport/car/carv2/#characteristics). + /// + /// For more information check the [header specification](https://ipld.io/specs/transport/car/carv2/#header). pub async fn read_header(&mut self) -> Result { // Even though the standard doesn't explicitly state endianness, go-car does // https://github.com/ipld/go-car/blob/45b81c1cc5117b3340dfdb025afeca90bfbe8d86/v2/car.go#L51-L69 @@ -56,19 +62,29 @@ where }) } + /// Read the [`CarV1Header`](`crate::v1::Header`). + /// + /// See [`CarV1Reader`][`crate::v1::Reader`] for more information. pub async fn read_v1_header(&mut self) -> Result { Ok(crate::v1::read_header(&mut self.reader).await?) } + /// Read a [`Cid`][`ipld_core::cid::Cid`] and data block. + /// + /// See [`CarV1Reader`][`crate::v1::Reader`] for more information. pub async fn read_block(&mut self) -> Result<(Cid, Vec), Error> { Ok(crate::v1::read_block(&mut self.reader).await?) } + /// Read an [`Index`][`crate::v2::Index`]. pub async fn read_index(&mut self) -> Result { read_index(&mut self.reader).await } /// Get a mutable reference to the inner reader. + /// + /// This is useful to skip padding or perform other operations the + /// [`CarV2Reader`][`crate::v2::Reader`] does not natively support. pub fn get_inner_mut(&mut self) -> &mut R { &mut self.reader } From a87a0f6dcce0b873450673c458484999631257ba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jose=CC=81=20Duarte?= Date: Thu, 23 May 2024 10:19:16 +0100 Subject: [PATCH 31/63] docs(file-storage): improve v1::Reader docs --- storage/mater/src/v1/reader.rs | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/storage/mater/src/v1/reader.rs b/storage/mater/src/v1/reader.rs index 29ab1a126..35590566a 100644 --- a/storage/mater/src/v1/reader.rs +++ b/storage/mater/src/v1/reader.rs @@ -65,6 +65,7 @@ pub struct Reader { } impl Reader { + /// Constructs a new [`CarV1Reader`](`crate::v1::Reader`). pub fn new(reader: R) -> Self { Self { reader } } @@ -74,21 +75,29 @@ impl Reader where R: AsyncRead + Unpin, { - /// Read an [`Header`]. + /// Read a [`CarV1Header`](`crate::v1::Header`). + /// + /// As defined in the [specification constraints](https://ipld.io/specs/transport/car/carv1/#constraints), + /// this function will return an error if: + /// * The read header does not have version 1. + /// * The read header does not have roots. + /// + /// For more information, check the [header specification](https://ipld.io/specs/transport/car/carv1/#header). pub async fn read_header(&mut self) -> Result { read_header(&mut self.reader).await } - /// Reads a block. + /// Reads a [`Cid`][`ipld_core::cid::Cid`] and a data block. /// /// A block is composed of a CID (either version 0 or 1) and data, it is prefixed with the data length. - /// Below you can see a diagram: /// ```text /// ┌──────────────────────┬─────┬────────────────────────┐ /// │ Data length (varint) │ CID │ Data block (raw bytes) │ /// └──────────────────────┴─────┴────────────────────────┘ /// ``` - /// The data block is returned AS IS, callers should use the codec field of the [`Cid`] to parse it. + /// *The data block is returned AS IS, callers should use the codec field of the [`Cid`] to parse it.* + /// + /// For more information, check the [block specification](https://ipld.io/specs/transport/car/carv1/#data). pub async fn read_block(&mut self) -> Result<(Cid, Vec), Error> { read_block(&mut self.reader).await } From c1ab1a87af62e56360c4102c9547770c9c7b1524 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jose=CC=81=20Duarte?= Date: Thu, 23 May 2024 11:11:31 +0100 Subject: [PATCH 32/63] fix(file-storage): rename MultiWidthIndex (go-car name) to IndexSorted (specification name) --- storage/mater/src/lib.rs | 43 ++++++++++++++++++------------ storage/mater/src/v1/mod.rs | 13 ++++++--- storage/mater/src/v1/reader.rs | 1 + storage/mater/src/v1/writer.rs | 10 +++---- storage/mater/src/v2/index.rs | 48 ++++++++++++++++++---------------- storage/mater/src/v2/mod.rs | 2 +- storage/mater/src/v2/writer.rs | 6 ++--- 7 files changed, 70 insertions(+), 53 deletions(-) diff --git a/storage/mater/src/lib.rs b/storage/mater/src/lib.rs index 2e2616bd7..8854be7f8 100644 --- a/storage/mater/src/lib.rs +++ b/storage/mater/src/lib.rs @@ -3,27 +3,20 @@ mod v2; pub use v1::{Header as CarV1Header, Reader as CarV1Reader, Writer as CarV1Writer}; pub use v2::{ - Characteristics, Header as CarV2Header, Index, IndexEntry, MultiWidthIndex, - MultihashIndexSorted, Reader as CarV2Reader, SingleWidthIndex, Writer as CarV2Writer, + Characteristics, Header as CarV2Header, Index, IndexEntry, IndexSorted, MultihashIndexSorted, + Reader as CarV2Reader, SingleWidthIndex, Writer as CarV2Writer, }; // We need to expose this because `read_block` returns `(Cid, Vec)`. pub use ipld_core::cid::Cid; +/// CAR handling errors. #[derive(Debug, thiserror::Error)] pub enum Error { - #[error(transparent)] - CodecError(#[from] serde_ipld_dagcbor::error::CodecError), - - #[error(transparent)] - IoError(#[from] tokio::io::Error), - - #[error(transparent)] - CidError(#[from] ipld_core::cid::Error), - - #[error(transparent)] - MultihashError(#[from] ipld_core::cid::multihash::Error), - + /// Returned when a version was expected, but another was received. + /// + /// For example, when reading CARv1 files, the only valid version is 1, + /// otherwise, this error should be returned. #[error("expected version {expected}, but received version {received} instead")] VersionMismatchError { expected: u8, received: u8 }, @@ -33,7 +26,7 @@ pub enum Error { EmptyRootsError, /// Unknown type of index. Supported indexes are - /// [`MultiWidthIndex`](`crate::v2::MultiWidthIndex`) and + /// [`IndexSorted`](`crate::v2::IndexSorted`) and /// [`MultihashIndexSorted`](`crate::v2::MultihashIndexSorted`). #[error("unknown index type {0}")] UnknownIndexError(u64), @@ -47,9 +40,9 @@ pub enum Error { EmptyIndexError, /// The [specification](https://ipld.io/specs/transport/car/carv2/#characteristics) - /// does not discuss how to handle incoming characteristics + /// does not discuss how to handle unknown characteristics /// — i.e. if we should ignore them, truncate them or return an error — - /// we decided on returning an error. + /// we decided to return an error when there are unknown bits set. #[error("unknown characteristics were set: {0}")] UnknownCharacteristicsError(u128), @@ -58,6 +51,22 @@ pub enum Error { /// if the received pragma is not the same, we return an error. #[error("received an invalid pragma: {0:?}")] InvalidPragmaError(Vec), + + /// See [`CodecError`](serde_ipld_dagcbor::error::CodecError) for more information. + #[error(transparent)] + CodecError(#[from] serde_ipld_dagcbor::error::CodecError), + + /// See [`IoError`](tokio::io::Error) for more information. + #[error(transparent)] + IoError(#[from] tokio::io::Error), + + /// See [`CidError`](ipld_core::cid::Error) for more information. + #[error(transparent)] + CidError(#[from] ipld_core::cid::Error), + + /// See [`MultihashError`](ipld_core::cid::multihash::Error) for more information. + #[error(transparent)] + MultihashError(#[from] ipld_core::cid::multihash::Error), } #[cfg(test)] diff --git a/storage/mater/src/v1/mod.rs b/storage/mater/src/v1/mod.rs index 3965bae18..2b9ab6be7 100644 --- a/storage/mater/src/v1/mod.rs +++ b/storage/mater/src/v1/mod.rs @@ -13,14 +13,21 @@ pub(crate) use crate::v1::{ /// Low-level CARv1 header. #[derive(Debug, Serialize, Deserialize)] pub struct Header { - pub version: u8, + /// CAR file version. + /// + /// It is always 1, as defined in the + /// [specification](https://ipld.io/specs/transport/car/carv1/#constraints). + version: u8, + + /// Root [`Cid`](`ipld_core::cid::Cid`)s for the contained data. pub roots: Vec, } impl Header { - /// Construct a new CARv1 header. + /// Construct a new [`CarV1Header`](`crate::v1::Header`). /// - /// The version will always be 1. + /// The version will always be 1, as defined in the + /// [specification](https://ipld.io/specs/transport/car/carv1/#constraints). pub fn new(roots: Vec) -> Self { Self { version: 1, roots } } diff --git a/storage/mater/src/v1/reader.rs b/storage/mater/src/v1/reader.rs index 35590566a..90b1f4746 100644 --- a/storage/mater/src/v1/reader.rs +++ b/storage/mater/src/v1/reader.rs @@ -28,6 +28,7 @@ where } let header: Header = DagCborCodec::decode_from_slice(&header_buffer)?; + // NOTE(@jmg-duarte,23/05/2024): implementing a custom Deserialize for Header would make this shorter and overall handling more reliable if header.version != 1 { return Err(Error::VersionMismatchError { expected: 1, diff --git a/storage/mater/src/v1/writer.rs b/storage/mater/src/v1/writer.rs index 845508294..2d359c8c8 100644 --- a/storage/mater/src/v1/writer.rs +++ b/storage/mater/src/v1/writer.rs @@ -6,7 +6,7 @@ use tokio::io::{AsyncWrite, AsyncWriteExt}; pub use crate::v1::Header; use crate::Error; -/// Write a CARv1 header to the provider writer. +/// Write [`CarV1Header`](`crate::v1::Header`) to the provider writer. pub(crate) async fn write_header(writer: &mut W, header: &Header) -> Result<(), Error> where W: AsyncWrite + Unpin, @@ -17,7 +17,7 @@ where Ok(()) } -/// Write a [`Cid`] and block to the given writer. +/// Write a [`Cid`] and data block to the given writer. /// /// This is a low-level function to be used in the implementation of CAR writers. pub(crate) async fn write_block( @@ -45,7 +45,7 @@ pub struct Writer { } impl Writer { - /// Construct a new CARv1 writer. + /// Construct a new [`CarV1Writer`](`crate::v1::Writer`). /// /// Takes a writer into which the data will be written. pub fn new(writer: W) -> Self { @@ -57,9 +57,7 @@ impl Writer where W: AsyncWrite + Unpin, { - /// Write a CARv1 header. - /// - /// * If the header has already been written, this is a no-op. + /// Write a [`CarV1Header`](`crate::v1::Header`). pub async fn write_header(&mut self, header: &Header) -> Result<(), Error> { write_header(&mut self.writer, header).await } diff --git a/storage/mater/src/v2/index.rs b/storage/mater/src/v2/index.rs index 721ef40f8..c17c134b4 100644 --- a/storage/mater/src/v2/index.rs +++ b/storage/mater/src/v2/index.rs @@ -5,7 +5,12 @@ use tokio::io::{AsyncRead, AsyncReadExt, AsyncWrite, AsyncWriteExt}; use crate::Error; +/// `IndexSorted` code format value, as defined in the +/// [specification](https://ipld.io/specs/transport/car/carv2/#format-0x0400-indexsorted). pub const INDEX_SORTED_CODE: u64 = 0x0400; + +/// `MultihashIndexSorted` code format value, as defined in the +/// [specification](https://ipld.io/specs/transport/car/carv2/#format-0x0401-multihashindexsorted). pub const MULTIHASH_INDEX_SORTED_CODE: u64 = 0x0401; // Basically, everything that does not have explicit endianness @@ -26,7 +31,7 @@ pub struct IndexEntry { } impl IndexEntry { - /// Construct a new [`IndexEntry`]. + /// Construct a new [`IndexEntry`](`crate::v2::IndexEntry`). pub fn new(digest: Vec, offset: u64) -> Self { Self { digest, offset } } @@ -43,7 +48,7 @@ pub struct SingleWidthIndex { /// (i.e. `self.count * self.width`). /// /// See `go-car`'s source code for more information: - /// https://github.com/ipld/go-car/blob/45b81c1cc5117b3340dfdb025afeca90bfbe8d86/v2/index/indexsorted.go#L29 + /// pub count: u64, /// The index entries. @@ -51,12 +56,12 @@ pub struct SingleWidthIndex { } impl SingleWidthIndex { - /// Construct a new [`SingleWidthIndex`]. + /// Construct a new [`SingleWidthIndex`](`crate::v2::SingleWidthIndex`). /// /// Notes: /// * The `digest_width` should not account for the offset length. /// * This function sorts the `entries`. - fn new(digest_width: u32, count: u64, mut entries: Vec) -> Self { + pub fn new(digest_width: u32, count: u64, mut entries: Vec) -> Self { entries.sort_by(|fst, snd| fst.digest.cmp(&snd.digest)); Self { width: digest_width + 8, // digest_width + offset len @@ -101,21 +106,21 @@ impl TryFrom> for SingleWidthIndex { /// /// For more details, read the [`Format 0x0400: IndexSorted`](https://ipld.io/specs/transport/car/carv2/#format-0x0400-indexsorted) section in the CARv2 specification. #[derive(Debug, PartialEq, Eq)] -pub struct MultiWidthIndex(pub Vec); +pub struct IndexSorted(pub Vec); -impl From for MultiWidthIndex { +impl From for IndexSorted { fn from(value: IndexEntry) -> Self { Self(vec![SingleWidthIndex::from(value)]) } } -impl From for MultiWidthIndex { +impl From for IndexSorted { fn from(value: SingleWidthIndex) -> Self { Self(vec![value]) } } -impl From> for MultiWidthIndex { +impl From> for IndexSorted { fn from(value: Vec) -> Self { Self(value) } @@ -127,11 +132,11 @@ impl From> for MultiWidthIndex { #[derive(Debug, PartialEq, Eq)] pub struct MultihashIndexSorted( // NOTE(@jmg-duarte,21/05/2024): maybe we should implement Deref where Deref::Target = BTreeMap? - pub BTreeMap, + pub BTreeMap, ); -impl From> for MultihashIndexSorted { - fn from(value: BTreeMap) -> Self { +impl From> for MultihashIndexSorted { + fn from(value: BTreeMap) -> Self { Self(value) } } @@ -139,12 +144,12 @@ impl From> for MultihashIndexSorted { /// CARv2 index. #[derive(Debug, PartialEq, Eq)] pub enum Index { - IndexSorted(MultiWidthIndex), + IndexSorted(IndexSorted), MultihashIndexSorted(MultihashIndexSorted), } impl Index { - pub fn multihash(index: BTreeMap) -> Self { + pub fn multihash(index: BTreeMap) -> Self { Self::MultihashIndexSorted(index.into()) } } @@ -183,10 +188,7 @@ where Ok(()) } -pub(crate) async fn write_index_sorted( - mut writer: W, - index: &MultiWidthIndex, -) -> Result<(), Error> +pub(crate) async fn write_index_sorted(mut writer: W, index: &IndexSorted) -> Result<(), Error> where W: AsyncWrite + Unpin, { @@ -253,7 +255,7 @@ where Ok(MultihashIndexSorted(indexes)) } -pub(crate) async fn read_index_sorted(mut reader: R) -> Result +pub(crate) async fn read_index_sorted(mut reader: R) -> Result where R: AsyncRead + Unpin, { @@ -263,7 +265,7 @@ where let index = read_single_width_index(&mut reader).await?; buckets.push(index); } - Ok(MultiWidthIndex(buckets)) + Ok(IndexSorted(buckets)) } pub(crate) async fn read_single_width_index(mut reader: R) -> Result @@ -321,8 +323,8 @@ mod tests { v2::index::{ read_index, read_index_entry, read_index_sorted, read_multihash_index_sorted, read_single_width_index, write_index, write_index_entry, write_index_sorted, - write_multihash_index_sorted, write_single_width_index, Index, IndexEntry, - MultiWidthIndex, MultihashIndexSorted, SingleWidthIndex, + write_multihash_index_sorted, write_single_width_index, Index, IndexEntry, IndexSorted, + MultihashIndexSorted, SingleWidthIndex, }, }; @@ -488,7 +490,7 @@ mod tests { #[tokio::test] async fn roundtrip_multiwidth_index() { - let index = MultiWidthIndex(vec![ + let index = IndexSorted(vec![ generate_single_width_index::(5), generate_single_width_index::(5), ]); @@ -550,7 +552,7 @@ mod tests { #[tokio::test] async fn roundtrip_index_sorted() { - let index = Index::IndexSorted(MultiWidthIndex(vec![ + let index = Index::IndexSorted(IndexSorted(vec![ generate_single_width_index::(5), generate_single_width_index::(5), ])); diff --git a/storage/mater/src/v2/mod.rs b/storage/mater/src/v2/mod.rs index 9f37fdb80..8d69f844d 100644 --- a/storage/mater/src/v2/mod.rs +++ b/storage/mater/src/v2/mod.rs @@ -3,7 +3,7 @@ mod reader; mod writer; use bitflags::bitflags; -pub use index::{Index, IndexEntry, MultiWidthIndex, MultihashIndexSorted, SingleWidthIndex}; +pub use index::{Index, IndexEntry, IndexSorted, MultihashIndexSorted, SingleWidthIndex}; pub use reader::Reader; pub use writer::Writer; diff --git a/storage/mater/src/v2/writer.rs b/storage/mater/src/v2/writer.rs index 0555faecc..a0df1e2dd 100644 --- a/storage/mater/src/v2/writer.rs +++ b/storage/mater/src/v2/writer.rs @@ -89,7 +89,7 @@ mod tests { use crate::{ multihash::{generate_multihash, MultihashCode}, v2::{ - index::{IndexEntry, MultiWidthIndex, SingleWidthIndex}, + index::{IndexEntry, IndexSorted, SingleWidthIndex}, Header, Writer, }, }; @@ -209,7 +209,7 @@ mod tests { let mut mapping = BTreeMap::new(); mapping.insert( Sha256::CODE, - MultiWidthIndex::from(IndexEntry::new( + IndexSorted::from(IndexEntry::new( root_cid.hash().digest().to_vec(), // This detail is "hidden" in the spec even though it's SO IMPORTANT // See: https://ipld.io/specs/transport/car/carv2/#format-0x0400-indexsorted @@ -324,7 +324,7 @@ mod tests { let mut mapping = BTreeMap::new(); mapping.insert( Sha256::CODE, - MultiWidthIndex::from( + IndexSorted::from( SingleWidthIndex::try_from( file_blocks .iter() From 9d411738fac41cb54df404037019466b07d6163c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jose=CC=81=20Duarte?= Date: Thu, 23 May 2024 11:21:15 +0100 Subject: [PATCH 33/63] docs(file-storage): link cleaning --- storage/mater/src/lib.rs | 6 ++++-- storage/mater/src/v1/mod.rs | 4 ++-- storage/mater/src/v1/reader.rs | 11 ++++++----- storage/mater/src/v1/writer.rs | 6 +++--- storage/mater/src/v2/index.rs | 6 +++--- storage/mater/src/v2/reader.rs | 4 ++-- 6 files changed, 20 insertions(+), 17 deletions(-) diff --git a/storage/mater/src/lib.rs b/storage/mater/src/lib.rs index 8854be7f8..26bd391c1 100644 --- a/storage/mater/src/lib.rs +++ b/storage/mater/src/lib.rs @@ -1,3 +1,6 @@ +#![warn(unused_crate_dependencies)] +#![warn(rustdoc::broken_intra_doc_links)] + mod v1; mod v2; @@ -26,8 +29,7 @@ pub enum Error { EmptyRootsError, /// Unknown type of index. Supported indexes are - /// [`IndexSorted`](`crate::v2::IndexSorted`) and - /// [`MultihashIndexSorted`](`crate::v2::MultihashIndexSorted`). + /// [`IndexSorted`] and [`MultihashIndexSorted`]. #[error("unknown index type {0}")] UnknownIndexError(u64), diff --git a/storage/mater/src/v1/mod.rs b/storage/mater/src/v1/mod.rs index 2b9ab6be7..38c4fbd2e 100644 --- a/storage/mater/src/v1/mod.rs +++ b/storage/mater/src/v1/mod.rs @@ -19,12 +19,12 @@ pub struct Header { /// [specification](https://ipld.io/specs/transport/car/carv1/#constraints). version: u8, - /// Root [`Cid`](`ipld_core::cid::Cid`)s for the contained data. + /// Root [`Cid`](ipld_core::cid::Cid)s for the contained data. pub roots: Vec, } impl Header { - /// Construct a new [`CarV1Header`](`crate::v1::Header`). + /// Construct a new [`CarV1Header`](crate::v1::Header). /// /// The version will always be 1, as defined in the /// [specification](https://ipld.io/specs/transport/car/carv1/#constraints). diff --git a/storage/mater/src/v1/reader.rs b/storage/mater/src/v1/reader.rs index 90b1f4746..0bad81e8f 100644 --- a/storage/mater/src/v1/reader.rs +++ b/storage/mater/src/v1/reader.rs @@ -28,7 +28,8 @@ where } let header: Header = DagCborCodec::decode_from_slice(&header_buffer)?; - // NOTE(@jmg-duarte,23/05/2024): implementing a custom Deserialize for Header would make this shorter and overall handling more reliable + // NOTE(@jmg-duarte,23/05/2024): implementing a custom Deserialize for Header + // would make this shorter and overall handling more reliable if header.version != 1 { return Err(Error::VersionMismatchError { expected: 1, @@ -66,7 +67,7 @@ pub struct Reader { } impl Reader { - /// Constructs a new [`CarV1Reader`](`crate::v1::Reader`). + /// Constructs a new [`CarV1Reader`](crate::v1::Reader). pub fn new(reader: R) -> Self { Self { reader } } @@ -76,7 +77,7 @@ impl Reader where R: AsyncRead + Unpin, { - /// Read a [`CarV1Header`](`crate::v1::Header`). + /// Read a [`CarV1Header`](crate::v1::Header). /// /// As defined in the [specification constraints](https://ipld.io/specs/transport/car/carv1/#constraints), /// this function will return an error if: @@ -88,7 +89,7 @@ where read_header(&mut self.reader).await } - /// Reads a [`Cid`][`ipld_core::cid::Cid`] and a data block. + /// Reads a [`Cid`](ipld_core::cid::Cid) and a data block. /// /// A block is composed of a CID (either version 0 or 1) and data, it is prefixed with the data length. /// ```text @@ -96,7 +97,7 @@ where /// │ Data length (varint) │ CID │ Data block (raw bytes) │ /// └──────────────────────┴─────┴────────────────────────┘ /// ``` - /// *The data block is returned AS IS, callers should use the codec field of the [`Cid`] to parse it.* + /// *The data block is returned AS IS, callers should use the codec field of the [`Cid`](ipld_core::cid::Cid) to parse it.* /// /// For more information, check the [block specification](https://ipld.io/specs/transport/car/carv1/#data). pub async fn read_block(&mut self) -> Result<(Cid, Vec), Error> { diff --git a/storage/mater/src/v1/writer.rs b/storage/mater/src/v1/writer.rs index 2d359c8c8..20cdbe166 100644 --- a/storage/mater/src/v1/writer.rs +++ b/storage/mater/src/v1/writer.rs @@ -6,7 +6,7 @@ use tokio::io::{AsyncWrite, AsyncWriteExt}; pub use crate::v1::Header; use crate::Error; -/// Write [`CarV1Header`](`crate::v1::Header`) to the provider writer. +/// Write [`CarV1Header`](crate::v1::Header) to the provider writer. pub(crate) async fn write_header(writer: &mut W, header: &Header) -> Result<(), Error> where W: AsyncWrite + Unpin, @@ -45,7 +45,7 @@ pub struct Writer { } impl Writer { - /// Construct a new [`CarV1Writer`](`crate::v1::Writer`). + /// Construct a new [`CarV1Writer`](crate::v1::Writer). /// /// Takes a writer into which the data will be written. pub fn new(writer: W) -> Self { @@ -57,7 +57,7 @@ impl Writer where W: AsyncWrite + Unpin, { - /// Write a [`CarV1Header`](`crate::v1::Header`). + /// Write a [`CarV1Header`](crate::v1::Header). pub async fn write_header(&mut self, header: &Header) -> Result<(), Error> { write_header(&mut self.writer, header).await } diff --git a/storage/mater/src/v2/index.rs b/storage/mater/src/v2/index.rs index c17c134b4..75b19d229 100644 --- a/storage/mater/src/v2/index.rs +++ b/storage/mater/src/v2/index.rs @@ -31,7 +31,7 @@ pub struct IndexEntry { } impl IndexEntry { - /// Construct a new [`IndexEntry`](`crate::v2::IndexEntry`). + /// Construct a new [`IndexEntry`](crate::v2::IndexEntry). pub fn new(digest: Vec, offset: u64) -> Self { Self { digest, offset } } @@ -56,7 +56,7 @@ pub struct SingleWidthIndex { } impl SingleWidthIndex { - /// Construct a new [`SingleWidthIndex`](`crate::v2::SingleWidthIndex`). + /// Construct a new [`SingleWidthIndex`](crate::v2::SingleWidthIndex). /// /// Notes: /// * The `digest_width` should not account for the offset length. @@ -126,7 +126,7 @@ impl From> for IndexSorted { } } -/// An index mapping Multihash codes to [`MultiWidthIndex`]. +/// An index mapping Multihash codes to [`IndexSorted`](crate::v2::IndexSorted). /// /// For more details, read the [`Format 0x0401: MultihashIndexSorted`](https://ipld.io/specs/transport/car/carv2/#format-0x0401-multihashindexsorted) section in the CARv2 specification. #[derive(Debug, PartialEq, Eq)] diff --git a/storage/mater/src/v2/reader.rs b/storage/mater/src/v2/reader.rs index 3cc5bc528..71f3e5665 100644 --- a/storage/mater/src/v2/reader.rs +++ b/storage/mater/src/v2/reader.rs @@ -36,7 +36,7 @@ where Ok(pragma_buffer) } - /// Read the [`CarV2Header`](`crate::v2::Header`). + /// Read the [`CarV2Header`](crate::v2::Header). /// /// This function fails if there are set bits that are not covered in the /// [characteristics specification](https://ipld.io/specs/transport/car/carv2/#characteristics). @@ -62,7 +62,7 @@ where }) } - /// Read the [`CarV1Header`](`crate::v1::Header`). + /// Read the [`CarV1Header`](crate::v1::Header). /// /// See [`CarV1Reader`][`crate::v1::Reader`] for more information. pub async fn read_v1_header(&mut self) -> Result { From 7e6888b1a0433fd334d60f8af1d7bac639ba9500 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jose=CC=81=20Duarte?= Date: Thu, 23 May 2024 11:21:26 +0100 Subject: [PATCH 34/63] fix(file-storage): broken tests --- storage/mater/src/v2/reader.rs | 3 --- 1 file changed, 3 deletions(-) diff --git a/storage/mater/src/v2/reader.rs b/storage/mater/src/v2/reader.rs index 71f3e5665..9e187c4f3 100644 --- a/storage/mater/src/v2/reader.rs +++ b/storage/mater/src/v2/reader.rs @@ -146,7 +146,6 @@ mod tests { .unwrap(); let v1_header = reader.read_v1_header().await.unwrap(); - assert_eq!(v1_header.version, 1); assert_eq!(v1_header.roots, vec![contents_cid]); loop { @@ -216,7 +215,6 @@ mod tests { assert_eq!(header.index_offset, 7712); let v1_header = reader.read_v1_header().await.unwrap(); - assert_eq!(v1_header.version, 1); assert_eq!(v1_header.roots, vec![contents_cid]); loop { @@ -269,7 +267,6 @@ mod tests { assert_eq!(header.index_offset, 654453); let v1_header = reader.read_v1_header().await.unwrap(); - assert_eq!(v1_header.version, 1); assert_eq!(v1_header.roots.len(), 1); assert_eq!( v1_header.roots[0] From 5ea2564fb75c1871c1286c95b549715a92cbad81 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jose=CC=81=20Duarte?= Date: Thu, 23 May 2024 11:55:17 +0100 Subject: [PATCH 35/63] docs: simplify intradoc links --- storage/mater/src/lib.rs | 2 +- storage/mater/src/v1/mod.rs | 4 ++-- storage/mater/src/v1/reader.rs | 8 ++++---- storage/mater/src/v1/writer.rs | 6 +++--- storage/mater/src/v2/index.rs | 20 ++++++++++++++++---- storage/mater/src/v2/mod.rs | 4 ++-- storage/mater/src/v2/reader.rs | 16 ++++++++-------- storage/mater/src/v2/writer.rs | 27 ++++++++++++--------------- 8 files changed, 48 insertions(+), 39 deletions(-) diff --git a/storage/mater/src/lib.rs b/storage/mater/src/lib.rs index 26bd391c1..61dd0da63 100644 --- a/storage/mater/src/lib.rs +++ b/storage/mater/src/lib.rs @@ -24,7 +24,7 @@ pub enum Error { VersionMismatchError { expected: u8, received: u8 }, /// According to the [specification](https://ipld.io/specs/transport/car/carv1/#constraints) - /// CAR files MUST have **one or more** CID roots. + /// CAR files MUST have **one or more** [`Cid`] roots. #[error("CAR file must have roots")] EmptyRootsError, diff --git a/storage/mater/src/v1/mod.rs b/storage/mater/src/v1/mod.rs index 38c4fbd2e..47ac275f6 100644 --- a/storage/mater/src/v1/mod.rs +++ b/storage/mater/src/v1/mod.rs @@ -19,12 +19,12 @@ pub struct Header { /// [specification](https://ipld.io/specs/transport/car/carv1/#constraints). version: u8, - /// Root [`Cid`](ipld_core::cid::Cid)s for the contained data. + /// Root [`Cid`]s for the contained data. pub roots: Vec, } impl Header { - /// Construct a new [`CarV1Header`](crate::v1::Header). + /// Construct a new [`Header`]. /// /// The version will always be 1, as defined in the /// [specification](https://ipld.io/specs/transport/car/carv1/#constraints). diff --git a/storage/mater/src/v1/reader.rs b/storage/mater/src/v1/reader.rs index 0bad81e8f..191cbaba7 100644 --- a/storage/mater/src/v1/reader.rs +++ b/storage/mater/src/v1/reader.rs @@ -67,7 +67,7 @@ pub struct Reader { } impl Reader { - /// Constructs a new [`CarV1Reader`](crate::v1::Reader). + /// Constructs a new [`Reader`]. pub fn new(reader: R) -> Self { Self { reader } } @@ -77,7 +77,7 @@ impl Reader where R: AsyncRead + Unpin, { - /// Read a [`CarV1Header`](crate::v1::Header). + /// Read a [`Header`]. /// /// As defined in the [specification constraints](https://ipld.io/specs/transport/car/carv1/#constraints), /// this function will return an error if: @@ -89,7 +89,7 @@ where read_header(&mut self.reader).await } - /// Reads a [`Cid`](ipld_core::cid::Cid) and a data block. + /// Reads a [`Cid`] and a data block. /// /// A block is composed of a CID (either version 0 or 1) and data, it is prefixed with the data length. /// ```text @@ -97,7 +97,7 @@ where /// │ Data length (varint) │ CID │ Data block (raw bytes) │ /// └──────────────────────┴─────┴────────────────────────┘ /// ``` - /// *The data block is returned AS IS, callers should use the codec field of the [`Cid`](ipld_core::cid::Cid) to parse it.* + /// *The data block is returned AS IS, callers should use the codec field of the [`Cid`] to parse it.* /// /// For more information, check the [block specification](https://ipld.io/specs/transport/car/carv1/#data). pub async fn read_block(&mut self) -> Result<(Cid, Vec), Error> { diff --git a/storage/mater/src/v1/writer.rs b/storage/mater/src/v1/writer.rs index 20cdbe166..375a4278f 100644 --- a/storage/mater/src/v1/writer.rs +++ b/storage/mater/src/v1/writer.rs @@ -6,7 +6,7 @@ use tokio::io::{AsyncWrite, AsyncWriteExt}; pub use crate::v1::Header; use crate::Error; -/// Write [`CarV1Header`](crate::v1::Header) to the provider writer. +/// Write [`crate::v1::Header`] to the provider writer. pub(crate) async fn write_header(writer: &mut W, header: &Header) -> Result<(), Error> where W: AsyncWrite + Unpin, @@ -45,7 +45,7 @@ pub struct Writer { } impl Writer { - /// Construct a new [`CarV1Writer`](crate::v1::Writer). + /// Construct a new [`crate::v1::Writer`]. /// /// Takes a writer into which the data will be written. pub fn new(writer: W) -> Self { @@ -57,7 +57,7 @@ impl Writer where W: AsyncWrite + Unpin, { - /// Write a [`CarV1Header`](crate::v1::Header). + /// Write a [`crate::v1::Header`]. pub async fn write_header(&mut self, header: &Header) -> Result<(), Error> { write_header(&mut self.writer, header).await } diff --git a/storage/mater/src/v2/index.rs b/storage/mater/src/v2/index.rs index 75b19d229..d259d848a 100644 --- a/storage/mater/src/v2/index.rs +++ b/storage/mater/src/v2/index.rs @@ -13,8 +13,8 @@ pub const INDEX_SORTED_CODE: u64 = 0x0400; /// [specification](https://ipld.io/specs/transport/car/carv2/#format-0x0401-multihashindexsorted). pub const MULTIHASH_INDEX_SORTED_CODE: u64 = 0x0401; -// Basically, everything that does not have explicit endianness -// is little-endian, as made evident by the go-car source code +// Basically, everything that does not have explicit endianness in the specification +// is little-endian, as made evident by the go-car source code: // https://github.com/ipld/go-car/blob/45b81c1cc5117b3340dfdb025afeca90bfbe8d86/v2/index/mhindexsorted.go#L45-L53 /// A index entry for a data block inside the CARv1. @@ -80,7 +80,7 @@ impl From for SingleWidthIndex { impl TryFrom> for SingleWidthIndex { type Error = Error; - /// Performs the conversion, validating that all indexes have the same width. + /// Performs the conversion, validating that all the [`IndexEntry`] have the same width. fn try_from(value: Vec) -> Result { if value.is_empty() { return Err(Error::EmptyIndexError); @@ -126,7 +126,7 @@ impl From> for IndexSorted { } } -/// An index mapping Multihash codes to [`IndexSorted`](crate::v2::IndexSorted). +/// An index mapping Multihash codes to [`IndexSorted`]. /// /// For more details, read the [`Format 0x0401: MultihashIndexSorted`](https://ipld.io/specs/transport/car/carv2/#format-0x0401-multihashindexsorted) section in the CARv2 specification. #[derive(Debug, PartialEq, Eq)] @@ -142,13 +142,25 @@ impl From> for MultihashIndexSorted { } /// CARv2 index. +/// +/// For more information, check the [specification](https://ipld.io/specs/transport/car/carv2/#index-payload). #[derive(Debug, PartialEq, Eq)] pub enum Index { + /// An index sorting by digest length, from smallest to largest. + /// + /// Check [`IndexSorted`] for more information. IndexSorted(IndexSorted), + + /// An index sorting by [Multihash code](https://github.com/multiformats/multicodec/blob/master/table.csv). + /// + /// Check [`MultihashIndexSorted`] for more information. MultihashIndexSorted(MultihashIndexSorted), } impl Index { + /// Construct a new [`Index::MultihashIndexSorted`]. + /// + /// Check [`MultihashIndexSorted`] for more information. pub fn multihash(index: BTreeMap) -> Self { Self::MultihashIndexSorted(index.into()) } diff --git a/storage/mater/src/v2/mod.rs b/storage/mater/src/v2/mod.rs index 8d69f844d..b281ad505 100644 --- a/storage/mater/src/v2/mod.rs +++ b/storage/mater/src/v2/mod.rs @@ -9,8 +9,7 @@ pub use writer::Writer; /// The pragma for a CARv2. This is also a valid CARv1 header, with version 2 and no root CIDs. /// -/// For more information, check the specification: -/// https://ipld.io/specs/transport/car/carv2/#pragma +/// For more information, check the specification: pub const PRAGMA: [u8; 11] = [ 0x0a, // unit(10) 0xa1, // map(1) @@ -64,6 +63,7 @@ pub struct Header { } impl Header { + /// Construct a new [`Header`]. pub fn new(fully_indexed: bool, data_offset: u64, data_size: u64, index_offset: u64) -> Self { Self { characteristics: Characteristics::new(fully_indexed), diff --git a/storage/mater/src/v2/reader.rs b/storage/mater/src/v2/reader.rs index 9e187c4f3..d661334ea 100644 --- a/storage/mater/src/v2/reader.rs +++ b/storage/mater/src/v2/reader.rs @@ -13,7 +13,7 @@ pub struct Reader { } impl Reader { - /// Constructs a new [`CarV2Reader`][`crate::v2::Reader`]. + /// Constructs a new [`Reader`]. pub fn new(reader: R) -> Self { Self { reader } } @@ -36,7 +36,7 @@ where Ok(pragma_buffer) } - /// Read the [`CarV2Header`](crate::v2::Header). + /// Read the [`Header`]. /// /// This function fails if there are set bits that are not covered in the /// [characteristics specification](https://ipld.io/specs/transport/car/carv2/#characteristics). @@ -62,21 +62,21 @@ where }) } - /// Read the [`CarV1Header`](crate::v1::Header). + /// Read the [`Header`]. /// - /// See [`CarV1Reader`][`crate::v1::Reader`] for more information. + /// See [`crate::v1::Reader`] for more information. pub async fn read_v1_header(&mut self) -> Result { Ok(crate::v1::read_header(&mut self.reader).await?) } - /// Read a [`Cid`][`ipld_core::cid::Cid`] and data block. + /// Read a [`Cid`] and data block. /// - /// See [`CarV1Reader`][`crate::v1::Reader`] for more information. + /// See [`crate::v1::Reader`] for more information. pub async fn read_block(&mut self) -> Result<(Cid, Vec), Error> { Ok(crate::v1::read_block(&mut self.reader).await?) } - /// Read an [`Index`][`crate::v2::Index`]. + /// Read an [`Index`]. pub async fn read_index(&mut self) -> Result { read_index(&mut self.reader).await } @@ -84,7 +84,7 @@ where /// Get a mutable reference to the inner reader. /// /// This is useful to skip padding or perform other operations the - /// [`CarV2Reader`][`crate::v2::Reader`] does not natively support. + /// [`Reader`] does not natively support. pub fn get_inner_mut(&mut self) -> &mut R { &mut self.reader } diff --git a/storage/mater/src/v2/writer.rs b/storage/mater/src/v2/writer.rs index a0df1e2dd..290ac251c 100644 --- a/storage/mater/src/v2/writer.rs +++ b/storage/mater/src/v2/writer.rs @@ -7,27 +7,24 @@ use crate::{v2::index::Index, Error}; /// Low-level CARv2 writer. // TODO(@jmg-duarte,17/05/2024): add padding support -pub struct Writer -where - W: AsyncWrite + Unpin, -{ +pub struct Writer { writer: W, } -impl Writer -where - W: AsyncWrite + Unpin, -{ - /// Construct a new CARv1 writer. +impl Writer { + /// Construct a new [`Writer`]. /// /// Takes a write into which the data will be written. pub fn new(writer: W) -> Self { Self { writer } } +} - /// Write a CARv2 header. - /// - /// * If the header has already been written, this is a no-op. +impl Writer +where + W: AsyncWrite + Unpin, +{ + /// Write a [`Header`]. pub async fn write_header(&mut self, header: &Header) -> Result<(), Error> { self.writer.write(&PRAGMA).await?; @@ -42,9 +39,7 @@ where Ok(()) } - /// Write a CARv1 header. - /// - /// * If the header has already been written, this is a no-op. + /// Write a [`crate::v1::Header`]. pub async fn write_v1_header(&mut self, v1_header: &crate::v1::Header) -> Result<(), Error> { crate::v1::write_header(&mut self.writer, v1_header).await } @@ -57,6 +52,7 @@ where crate::v1::write_block(&mut self.writer, cid, block).await } + /// Write an [`Index`]; pub async fn write_index(&mut self, index: &Index) -> Result<(), Error> { crate::v2::index::write_index(&mut self.writer, index).await } @@ -67,6 +63,7 @@ where Ok(self.writer) } + /// Get a mutable reference to the inner writer. pub fn get_inner_mut(&mut self) -> &mut W { &mut self.writer } From e1c27ac5405733ac86f859409938ad2e9e0c1445 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jose=CC=81=20Duarte?= Date: Thu, 23 May 2024 13:57:42 +0100 Subject: [PATCH 36/63] fix(file-storage): add v1 roundtrip test --- storage/mater/src/v1/mod.rs | 58 +++++++++++++++++++++++++++++++++- storage/mater/src/v1/writer.rs | 35 ++++++-------------- 2 files changed, 66 insertions(+), 27 deletions(-) diff --git a/storage/mater/src/v1/mod.rs b/storage/mater/src/v1/mod.rs index 47ac275f6..a309331e5 100644 --- a/storage/mater/src/v1/mod.rs +++ b/storage/mater/src/v1/mod.rs @@ -11,7 +11,7 @@ pub(crate) use crate::v1::{ }; /// Low-level CARv1 header. -#[derive(Debug, Serialize, Deserialize)] +#[derive(Debug, Serialize, Deserialize, PartialEq, Eq)] pub struct Header { /// CAR file version. /// @@ -32,3 +32,59 @@ impl Header { Self { version: 1, roots } } } + +#[cfg(test)] +mod tests { + use std::io::Cursor; + + use ipld_core::cid::Cid; + use sha2::Sha256; + use tokio::io::BufWriter; + + use crate::multihash::generate_multihash; + use crate::v1::{Header, Reader, Writer}; + + pub const RAW_CODEC: u64 = 0x55; + + impl Writer>> { + pub fn test_writer() -> Self { + let buffer = Vec::new(); + let buf_writer = BufWriter::new(buffer); + Writer::new(buf_writer) + } + } + + #[tokio::test] + async fn roundtrip_lorem() { + let file_contents = tokio::fs::read("tests/fixtures/original/lorem.txt") + .await + .unwrap(); + let contents_multihash = generate_multihash::(&file_contents); + let root_cid = Cid::new_v1(0x55, contents_multihash); + + let written_header = Header::new(vec![root_cid]); + let mut writer = crate::v1::Writer::test_writer(); + writer.write_header(&written_header).await.unwrap(); + + // There's only one block + writer.write_block(&root_cid, &file_contents).await.unwrap(); + let buf_writer = writer.finish().await.unwrap(); + let expected_header = tokio::fs::read("tests/fixtures/car_v1/lorem.car") + .await + .unwrap(); + assert_eq!(&expected_header, buf_writer.get_ref()); + + let buffer = buf_writer.into_inner(); + let mut reader = Reader::new(Cursor::new(buffer)); + let read_header = reader.read_header().await.unwrap(); + assert_eq!(read_header, written_header); + + let (read_cid, read_block) = reader.read_block().await.unwrap(); + assert_eq!(read_cid, root_cid); + assert_eq!(read_block, file_contents); + } + + // TODO(@jmg-duarte,23/05/2024): add roundtrip test for spaceglenda + // adding it manually right now is too much work due to the missing stores + // and other niceties +} diff --git a/storage/mater/src/v1/writer.rs b/storage/mater/src/v1/writer.rs index 375a4278f..5f14e510e 100644 --- a/storage/mater/src/v1/writer.rs +++ b/storage/mater/src/v1/writer.rs @@ -79,36 +79,21 @@ where #[cfg(test)] mod tests { - use std::path::Path; - - use ipld_core::cid::{multihash::Multihash, Cid}; + use ipld_core::cid::Cid; use sha2::Sha256; - use tokio::io::BufWriter; use super::Writer; - use crate::{multihash::generate_multihash, v1::Header}; - - const RAW_CODEC: u64 = 0x55; - - impl Writer>> { - fn test_writer() -> Self { - let buffer = Vec::new(); - let buf_writer = BufWriter::new(buffer); - Writer::new(buf_writer) - } - } - - async fn file_multihash

(path: P) -> Multihash<64> - where - P: AsRef, - { - let file_contents = tokio::fs::read(path).await.unwrap(); - generate_multihash::(&file_contents) - } + use crate::{ + multihash::generate_multihash, + v1::{tests::RAW_CODEC, Header}, + }; #[tokio::test] async fn header_writer() { - let contents_multihash = file_multihash("tests/fixtures/original/lorem.txt").await; + let file_contents = tokio::fs::read("tests/fixtures/original/lorem.txt") + .await + .unwrap(); + let contents_multihash = generate_multihash::(&file_contents); let root_cid = Cid::new_v1(RAW_CODEC, contents_multihash); let mut writer = Writer::test_writer(); @@ -147,6 +132,4 @@ mod tests { .unwrap(); assert_eq!(&expected_header, buf_writer.get_ref()); } - - // TODO(@jmg-duarte,19/05/2024): add more tests } From ed3550498ebff601e2574715ace83fd4b1776639 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jose=CC=81=20Duarte?= Date: Thu, 23 May 2024 14:50:06 +0100 Subject: [PATCH 37/63] fix(file-storage): separate multicodec codes and add v2 roundtrip test --- storage/mater/src/lib.rs | 33 +-------- storage/mater/src/multicodec.rs | 43 +++++++++++ storage/mater/src/v1/mod.rs | 6 +- storage/mater/src/v1/reader.rs | 12 +-- storage/mater/src/v1/writer.rs | 8 +- storage/mater/src/v2/index.rs | 15 ++-- storage/mater/src/v2/mod.rs | 125 +++++++++++++++++++++++++++++++- storage/mater/src/v2/reader.rs | 45 +++++++----- storage/mater/src/v2/writer.rs | 34 ++------- 9 files changed, 219 insertions(+), 102 deletions(-) create mode 100644 storage/mater/src/multicodec.rs diff --git a/storage/mater/src/lib.rs b/storage/mater/src/lib.rs index 61dd0da63..1a277da78 100644 --- a/storage/mater/src/lib.rs +++ b/storage/mater/src/lib.rs @@ -1,6 +1,6 @@ #![warn(unused_crate_dependencies)] -#![warn(rustdoc::broken_intra_doc_links)] +mod multicodec; mod v1; mod v2; @@ -70,34 +70,3 @@ pub enum Error { #[error(transparent)] MultihashError(#[from] ipld_core::cid::multihash::Error), } - -#[cfg(test)] -mod multihash { - use digest::Digest; - use ipld_core::cid::multihash::Multihash; - - /// Trait to ease implementing generic multihash generation. - pub(crate) trait MultihashCode { - /// Multihash code as defined in the [specification](https://github.com/multiformats/multicodec/blob/c954a787dc6a17d099653e5f90d26fbd177d2074/table.csv). - const CODE: u64; - } - - /// Generate a multihash for a byte slice. - pub(crate) fn generate_multihash(bytes: &[u8]) -> Multihash<64> - where - H: Digest + MultihashCode, - { - let mut hasher = H::new(); - hasher.update(&bytes); - let hashed_bytes = hasher.finalize(); - Multihash::wrap(H::CODE, &hashed_bytes).unwrap() - } - - impl MultihashCode for sha2::Sha256 { - const CODE: u64 = 0x12; - } - - impl MultihashCode for sha2::Sha512 { - const CODE: u64 = 0x13; - } -} diff --git a/storage/mater/src/multicodec.rs b/storage/mater/src/multicodec.rs new file mode 100644 index 000000000..3b88cca9b --- /dev/null +++ b/storage/mater/src/multicodec.rs @@ -0,0 +1,43 @@ +//! Multicodec utilities, such as the list of codes, +//! as per the [code table](https://github.com/multiformats/multicodec/blob/c954a787dc6a17d099653e5f90d26fbd177d2074/table.csv). +pub const SHA_256_CODE: u64 = 0x12; +pub const SHA_512_CODE: u64 = 0x13; +pub const RAW_CODE: u64 = 0x55; +pub const DAG_PB_CODE: u64 = 0x70; + +// This is easier than adding #[cfg(test)] to each one +#[cfg(test)] +mod private { + use digest::Digest; + use ipld_core::cid::multihash::Multihash; + + use super::{SHA_256_CODE, SHA_512_CODE}; + + /// Trait to ease implementing generic multihash generation. + pub(crate) trait MultihashCode { + /// Multihash code as defined in the [specification](https://github.com/multiformats/multicodec/blob/c954a787dc6a17d099653e5f90d26fbd177d2074/table.csv). + const CODE: u64; + } + + impl MultihashCode for sha2::Sha256 { + const CODE: u64 = SHA_256_CODE; + } + + impl MultihashCode for sha2::Sha512 { + const CODE: u64 = SHA_512_CODE; + } + + /// Generate a multihash for a byte slice. + pub(crate) fn generate_multihash(bytes: &[u8]) -> Multihash<64> + where + H: Digest + MultihashCode, + { + let mut hasher = H::new(); + hasher.update(&bytes); + let hashed_bytes = hasher.finalize(); + Multihash::wrap(H::CODE, &hashed_bytes).unwrap() + } +} + +#[cfg(test)] +pub(crate) use private::*; diff --git a/storage/mater/src/v1/mod.rs b/storage/mater/src/v1/mod.rs index a309331e5..f933a728b 100644 --- a/storage/mater/src/v1/mod.rs +++ b/storage/mater/src/v1/mod.rs @@ -41,11 +41,9 @@ mod tests { use sha2::Sha256; use tokio::io::BufWriter; - use crate::multihash::generate_multihash; + use crate::multicodec::{generate_multihash, RAW_CODE}; use crate::v1::{Header, Reader, Writer}; - pub const RAW_CODEC: u64 = 0x55; - impl Writer>> { pub fn test_writer() -> Self { let buffer = Vec::new(); @@ -60,7 +58,7 @@ mod tests { .await .unwrap(); let contents_multihash = generate_multihash::(&file_contents); - let root_cid = Cid::new_v1(0x55, contents_multihash); + let root_cid = Cid::new_v1(RAW_CODE, contents_multihash); let written_header = Header::new(vec![root_cid]); let mut writer = crate::v1::Writer::test_writer(); diff --git a/storage/mater/src/v1/reader.rs b/storage/mater/src/v1/reader.rs index 191cbaba7..3600dab9e 100644 --- a/storage/mater/src/v1/reader.rs +++ b/storage/mater/src/v1/reader.rs @@ -111,9 +111,11 @@ mod tests { use sha2::Sha256; use tokio::{fs::File, io::BufReader}; - use crate::{multihash::generate_multihash, v1::reader::Reader, Error}; - - const RAW_CODEC: u64 = 0x55; + use crate::{ + multicodec::{generate_multihash, RAW_CODE}, + v1::reader::Reader, + Error, + }; #[tokio::test] async fn header_reader() { @@ -121,7 +123,7 @@ mod tests { .await .unwrap(); let contents_multihash = generate_multihash::(&contents); - let contents_cid = Cid::new_v1(RAW_CODEC, contents_multihash); + let contents_cid = Cid::new_v1(RAW_CODE, contents_multihash); let file = File::open("tests/fixtures/car_v1/lorem_header.car") .await @@ -141,7 +143,7 @@ mod tests { .await .unwrap(); let contents_multihash = generate_multihash::(&contents); - let contents_cid = Cid::new_v1(RAW_CODEC, contents_multihash); + let contents_cid = Cid::new_v1(RAW_CODE, contents_multihash); let file = File::open("tests/fixtures/car_v1/lorem.car").await.unwrap(); let reader = BufReader::new(file); diff --git a/storage/mater/src/v1/writer.rs b/storage/mater/src/v1/writer.rs index 5f14e510e..1b80c78df 100644 --- a/storage/mater/src/v1/writer.rs +++ b/storage/mater/src/v1/writer.rs @@ -84,8 +84,8 @@ mod tests { use super::Writer; use crate::{ - multihash::generate_multihash, - v1::{tests::RAW_CODEC, Header}, + multicodec::{generate_multihash, RAW_CODE}, + v1::Header, }; #[tokio::test] @@ -94,7 +94,7 @@ mod tests { .await .unwrap(); let contents_multihash = generate_multihash::(&file_contents); - let root_cid = Cid::new_v1(RAW_CODEC, contents_multihash); + let root_cid = Cid::new_v1(RAW_CODE, contents_multihash); let mut writer = Writer::test_writer(); writer @@ -116,7 +116,7 @@ mod tests { .await .unwrap(); let contents_multihash = generate_multihash::(&file_contents); - let root_cid = Cid::new_v1(RAW_CODEC, contents_multihash); + let root_cid = Cid::new_v1(RAW_CODE, contents_multihash); let mut writer = Writer::test_writer(); writer diff --git a/storage/mater/src/v2/index.rs b/storage/mater/src/v2/index.rs index d259d848a..d4d0f82ea 100644 --- a/storage/mater/src/v2/index.rs +++ b/storage/mater/src/v2/index.rs @@ -330,7 +330,7 @@ mod tests { use tokio::{fs::File, io::AsyncSeekExt}; use crate::{ - multihash::{generate_multihash, MultihashCode}, + multicodec::{generate_multihash, MultihashCode, DAG_PB_CODE, RAW_CODE, SHA_256_CODE}, v1::read_block, v2::index::{ read_index, read_index_entry, read_index_sorted, read_multihash_index_sorted, @@ -346,8 +346,8 @@ mod tests { { let mut entries = vec![]; let mut data = vec![0u8; ::output_size()]; + data.fill_with(random); for idx in 0..count { - data.fill_with(random); let digest = H::digest(&data).to_vec(); entries.push(IndexEntry::new(digest, idx)); } @@ -413,14 +413,11 @@ mod tests { .unwrap(); let (cid, block) = read_block(&mut file).await.unwrap(); - assert_eq!(cid.hash().code(), 0x12); + assert_eq!(cid.hash().code(), SHA_256_CODE); // Sorting at this level is made byte-wise, so there's no short way // to compare the expected codecs... - assert!( - cid.codec() == 0x70 || // DAG-PB - cid.codec() == 0x55 // RAW - ); + assert!(cid.codec() == DAG_PB_CODE || cid.codec() == RAW_CODE); // instead we build a frequency table and check against that later! if let Some(frequency) = codec_frequencies.get_mut(&cid.codec()) { *frequency += 1; @@ -432,8 +429,8 @@ mod tests { assert_eq!(cid.hash(), &multihash); } - assert!(matches!(codec_frequencies.get(&0x70), Some(1))); - assert!(matches!(codec_frequencies.get(&0x55), Some(3))); + assert!(matches!(codec_frequencies.get(&DAG_PB_CODE), Some(1))); + assert!(matches!(codec_frequencies.get(&RAW_CODE), Some(3))); } #[tokio::test] diff --git a/storage/mater/src/v2/mod.rs b/storage/mater/src/v2/mod.rs index b281ad505..66e36aa24 100644 --- a/storage/mater/src/v2/mod.rs +++ b/storage/mater/src/v2/mod.rs @@ -20,6 +20,7 @@ pub const PRAGMA: [u8; 11] = [ bitflags! { /// Characteristics of the enclosed data. + #[derive(Debug, PartialEq, Eq)] pub struct Characteristics: u128 { const EMPTY = 0; const FULLY_INDEXED = 1 << 127; @@ -50,6 +51,7 @@ impl Default for Characteristics { } /// Low-level CARv2 header. +#[derive(Debug, PartialEq, Eq)] pub struct Header { /// Describes certain features of the enclosed data. characteristics: Characteristics, @@ -74,4 +76,125 @@ impl Header { } } -// TODO(@jmg-duarte,22/05/2024): add roundtrip tests +#[cfg(test)] +mod tests { + use std::{collections::BTreeMap, io::Cursor}; + + use ipld_core::cid::Cid; + use sha2::Sha256; + use tokio::io::{AsyncSeekExt, BufWriter}; + + use crate::{ + multicodec::{generate_multihash, MultihashCode, RAW_CODE}, + v2::{ + index::{Index, IndexEntry, IndexSorted}, + test_utils::assert_buffer_eq, + Header, Reader, Writer, + }, + }; + + #[tokio::test] + async fn roundtrip_lorem() { + let cursor = Cursor::new(vec![]); + let buf_writer = BufWriter::new(cursor); + let mut writer = Writer::new(buf_writer); + + let file_contents = tokio::fs::read("tests/fixtures/original/lorem.txt") + .await + .unwrap(); + let contents_multihash = generate_multihash::(&file_contents); + let root_cid = Cid::new_v1(RAW_CODE, contents_multihash); + + let written_header = Header::new(false, 51, 7661, 7712); + // To simplify testing, the values were extracted using `car inspect` + writer.write_header(&written_header).await.unwrap(); + + // We start writing the CARv1 here and keep the stream positions + // so that we can properly index the blocks later + let start_car_v1 = { + let inner = writer.get_inner_mut(); + inner.stream_position().await.unwrap() + }; + + let written_header_v1 = crate::v1::Header::new(vec![root_cid]); + writer.write_v1_header(&written_header_v1).await.unwrap(); + + let start_car_v1_data = { + let inner = writer.get_inner_mut(); + inner.stream_position().await.unwrap() + }; + + // There's only one block + writer.write_block(&root_cid, &file_contents).await.unwrap(); + + let written = { + let inner = writer.get_inner_mut(); + inner.stream_position().await.unwrap() + }; + assert_eq!(written, 7712); + + let mut mapping = BTreeMap::new(); + mapping.insert( + Sha256::CODE, + IndexSorted::from(IndexEntry::new( + root_cid.hash().digest().to_vec(), + // This detail is "hidden" in the spec even though it's SO IMPORTANT + // See: https://ipld.io/specs/transport/car/carv2/#format-0x0400-indexsorted + // > Individual index entries are the concatenation of the hash digest + // > an an additional 64-bit unsigned little-endian integer indicating + // > the offset of the block from the begining of the CARv1 data payload. + start_car_v1_data - start_car_v1, + )), + ); + let written_index = Index::multihash(mapping); + writer.write_index(&written_index).await.unwrap(); + + let mut buffer = writer.finish().await.unwrap().into_inner(); + buffer.rewind().await.unwrap(); + let expected_header = tokio::fs::read("tests/fixtures/car_v2/lorem.car") + .await + .unwrap(); + + assert_buffer_eq(&expected_header, buffer.get_ref()); + + let mut reader = Reader::new(buffer); + reader.read_pragma().await.unwrap(); + let read_header = reader.read_header().await.unwrap(); + assert_eq!(read_header, written_header); + let read_header_v1 = reader.read_v1_header().await.unwrap(); + assert_eq!(read_header_v1, written_header_v1); + let (read_cid, read_block) = reader.read_block().await.unwrap(); + assert_eq!(read_cid, root_cid); + assert_eq!(read_block, file_contents); + let read_index = reader.read_index().await.unwrap(); + assert_eq!(read_index, written_index); + } +} + +// NOTE(@jmg-duarte,23/05/2024): I'm looking for better alternatives to this +#[cfg(test)] +pub(crate) mod test_utils { + /// Check if two given slices are equal. + /// + /// First checks if the two slices have the same size, + /// then checks each byte-pair. If the slices differ, + /// it will show an error message with the difference index + /// along with a window showing surrounding elements + /// (instead of spamming your terminal like `assert_eq!` does). + pub fn assert_buffer_eq(lhs: &[u8], rhs: &[u8]) { + // NOTE(@jmg-duarte,23/05/2024): Unsure if instead of a function, this should be a macro_rules! + assert_eq!(lhs.len(), rhs.len()); + for (i, (l, r)) in lhs.iter().zip(rhs).enumerate() { + let before = i.checked_sub(5).unwrap_or(0); + let after = (i + 5).min(rhs.len()); + assert_eq!( + l, + r, + "difference at index {}\n left: {:02x?}\n right: {:02x?}", + i, + &lhs[before..=after], + &rhs[before..=after], + ) + } + } +} diff --git a/storage/mater/src/v2/reader.rs b/storage/mater/src/v2/reader.rs index d661334ea..9671e71c0 100644 --- a/storage/mater/src/v2/reader.rs +++ b/storage/mater/src/v2/reader.rs @@ -27,13 +27,14 @@ where /// /// This function fails if the pragma does not match the one defined in the /// [specification](https://ipld.io/specs/transport/car/carv2/#pragma). - pub async fn read_pragma(&mut self) -> Result, Error> { + pub async fn read_pragma(&mut self) -> Result<(), Error> { let mut pragma_buffer = vec![0; PRAGMA.len()]; self.reader.read_exact(&mut pragma_buffer).await?; if pragma_buffer != PRAGMA { return Err(Error::InvalidPragmaError(pragma_buffer)); } - Ok(pragma_buffer) + // Since we validate the pragma, there's no point in returning it. + Ok(()) } /// Read the [`Header`]. @@ -92,14 +93,15 @@ where #[cfg(test)] mod tests { + use std::io::Cursor; use ipld_core::cid::Cid; use sha2::Sha256; use tokio::{fs::File, io::AsyncSeekExt}; use crate::{ - multihash::generate_multihash, - v2::{index::Index, reader::Reader, PRAGMA}, + multicodec::{generate_multihash, RAW_CODE, SHA_256_CODE}, + v2::{index::Index, reader::Reader}, Error, }; @@ -107,8 +109,17 @@ mod tests { async fn pragma() { let file = File::open("tests/fixtures/car_v2/lorem.car").await.unwrap(); let mut reader = Reader::new(file); - let pragma = reader.read_pragma().await.unwrap(); - assert_eq!(pragma, PRAGMA); + let pragma = reader.read_pragma().await; + assert!(matches!(pragma, Ok(()))); + } + + #[tokio::test] + async fn bad_pragma() { + let mut bad_pragma = vec![0u8; 11]; + bad_pragma.fill_with(rand::random); + let mut reader = Reader::new(Cursor::new(bad_pragma)); + let pragma = reader.read_pragma().await; + assert!(matches!(pragma, Err(Error::InvalidPragmaError(_)))); } #[tokio::test] @@ -132,7 +143,7 @@ mod tests { .await .unwrap(); let contents_multihash = generate_multihash::(&file_contents); - let contents_cid = Cid::new_v1(0x55, contents_multihash); + let contents_cid = Cid::new_v1(RAW_CODE, contents_multihash); let file = File::open("tests/fixtures/car_v2/lorem.car").await.unwrap(); let mut reader = Reader::new(file); @@ -182,8 +193,8 @@ mod tests { assert!(matches!(index, Index::MultihashIndexSorted(_))); if let Index::MultihashIndexSorted(mh) = index { assert_eq!(mh.0.len(), 1); - assert!(mh.0.contains_key(&0x12)); - let fst = &mh.0[&0x12].0; + assert!(mh.0.contains_key(&SHA_256_CODE)); + let fst = &mh.0[&SHA_256_CODE].0; assert_eq!(fst.len(), 1); assert_eq!(fst[0].count, 1); assert_eq!(fst[0].width, 40); @@ -200,12 +211,11 @@ mod tests { .await .unwrap(); let contents_multihash = generate_multihash::(&file_contents); - let contents_cid = Cid::new_v1(0x55, contents_multihash); + let contents_cid = Cid::new_v1(RAW_CODE, contents_multihash); let file = File::open("tests/fixtures/car_v2/lorem.car").await.unwrap(); let mut reader = Reader::new(file); - let pragma = reader.read_pragma().await.unwrap(); - assert_eq!(pragma, PRAGMA); + reader.read_pragma().await.unwrap(); let header = reader.read_header().await.unwrap(); // `car inspect tests/fixtures/car_v2/lorem.car` to get the values @@ -239,8 +249,8 @@ mod tests { assert!(matches!(index, Index::MultihashIndexSorted(_))); if let Index::MultihashIndexSorted(mh) = index { assert_eq!(mh.0.len(), 1); - assert!(mh.0.contains_key(&0x12)); - let fst = &mh.0[&0x12].0; + assert!(mh.0.contains_key(&SHA_256_CODE)); + let fst = &mh.0[&SHA_256_CODE].0; assert_eq!(fst.len(), 1); assert_eq!(fst[0].count, 1); assert_eq!(fst[0].width, 40); @@ -256,8 +266,7 @@ mod tests { .await .unwrap(); let mut reader = Reader::new(file); - let pragma = reader.read_pragma().await.unwrap(); - assert_eq!(pragma, PRAGMA); + reader.read_pragma().await.unwrap(); let header = reader.read_header().await.unwrap(); // `car inspect tests/fixtures/car_v2/lorem.car` to get the values @@ -299,8 +308,8 @@ mod tests { assert!(matches!(index, Index::MultihashIndexSorted(_))); if let Index::MultihashIndexSorted(mh) = index { assert_eq!(mh.0.len(), 1); - assert!(mh.0.contains_key(&0x12)); - let fst = &mh.0[&0x12].0; + assert!(mh.0.contains_key(&SHA_256_CODE)); + let fst = &mh.0[&SHA_256_CODE].0; assert_eq!(fst.len(), 1); assert_eq!(fst[0].count, 4); assert_eq!(fst[0].width, 40); diff --git a/storage/mater/src/v2/writer.rs b/storage/mater/src/v2/writer.rs index 290ac251c..ebed6fe3a 100644 --- a/storage/mater/src/v2/writer.rs +++ b/storage/mater/src/v2/writer.rs @@ -84,15 +84,14 @@ mod tests { use tokio_util::io::ReaderStream; use crate::{ - multihash::{generate_multihash, MultihashCode}, + multicodec::{generate_multihash, MultihashCode, DAG_PB_CODE, RAW_CODE}, v2::{ index::{IndexEntry, IndexSorted, SingleWidthIndex}, + test_utils::assert_buffer_eq, Header, Writer, }, }; - const RAW_CODEC: u64 = 0x55; - impl Writer>> { fn test_writer() -> Self { let buffer = Vec::new(); @@ -101,29 +100,6 @@ mod tests { } } - /// Check if two given slices are equal. - /// - /// First checks if the two slices have the same size, - /// then checks each byte-pair. If the slices differ, - /// it will show an error message with the difference index - /// along with a window showing surrounding elements - /// (instead of spamming your terminal like `assert_eq!` does). - fn assert_buffer_eq(lhs: &[u8], rhs: &[u8]) { - assert_eq!(lhs.len(), rhs.len()); - for (i, (l, r)) in lhs.iter().zip(rhs).enumerate() { - let before = i.checked_sub(5).unwrap_or(0); - let after = (i + 5).min(rhs.len()); - assert_eq!( - l, - r, - "difference at index {}\n left: {:02x?}\n right: {:02x?}", - i, - &lhs[before..=after], - &rhs[before..=after], - ) - } - } - #[tokio::test] async fn header_lorem() { let file_contents = tokio::fs::read("tests/fixtures/car_v2/lorem.car") @@ -171,7 +147,7 @@ mod tests { .await .unwrap(); let contents_multihash = generate_multihash::(&file_contents); - let root_cid = Cid::new_v1(RAW_CODEC, contents_multihash); + let root_cid = Cid::new_v1(RAW_CODE, contents_multihash); // To simplify testing, the values were extracted using `car inspect` writer @@ -246,7 +222,7 @@ mod tests { while let Some(chunk) = file_chunker.next().await { let chunk = chunk.unwrap(); let multihash = generate_multihash::(&chunk); - let cid = Cid::new_v1(RAW_CODEC, multihash); + let cid = Cid::new_v1(RAW_CODE, multihash); file_blocks.push((cid, chunk)); } @@ -277,7 +253,7 @@ mod tests { .unwrap(); let root_cid = { let multihash = generate_multihash::(&node_bytes); - Cid::new_v1(0x70, multihash) + Cid::new_v1(DAG_PB_CODE, multihash) }; // To simplify testing, the values were extracted using `car inspect` From 7d5a180b211342dca81204a630771c9539a91609 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jose=CC=81=20Duarte?= Date: Thu, 23 May 2024 14:56:03 +0100 Subject: [PATCH 38/63] fix(file-storage): make use of PbLink --- storage/mater/src/v2/writer.rs | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/storage/mater/src/v2/writer.rs b/storage/mater/src/v2/writer.rs index ebed6fe3a..91efdeebd 100644 --- a/storage/mater/src/v2/writer.rs +++ b/storage/mater/src/v2/writer.rs @@ -73,8 +73,8 @@ where mod tests { use std::{collections::BTreeMap, io::Cursor}; - use ipld_core::{cid::Cid, ipld::Ipld}; - use ipld_dagpb::PbNode; + use ipld_core::cid::Cid; + use ipld_dagpb::{PbLink, PbNode}; use sha2::Sha256; use tokio::{ fs::File, @@ -228,17 +228,13 @@ mod tests { let links = file_blocks .iter() - .map(|(cid, block)| { - // NOTE(@jmg-duarte,22/05/2024): really bad API because PbLink is not public... - // https://github.com/ipld/rust-ipld-dagpb/pull/7 - let mut pb_link = BTreeMap::::new(); - pb_link.insert("Hash".to_string(), cid.into()); - pb_link.insert("Name".to_string(), "".into()); - pb_link.insert("Tsize".to_string(), block.len().into()); - (&Ipld::from(pb_link)).try_into() + .map(|(cid, block)| PbLink { + cid: cid.clone(), + // NOTE(@jmg-duarte,23/05/2024): actually how go-car does it... kinda weird if you ask me + name: Some("".to_string()), + size: Some(block.len() as u64), }) - .collect::>() - .unwrap(); + .collect(); let node = PbNode { links, data: None }; let mut node_bytes = node.into_bytes(); // This is very much cheating but the contents here are the UnixFS wrapper for the node From 5c3c568a0b7a6043ab4e1f29b3afe211af811d93 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jose=CC=81=20Duarte?= Date: Thu, 23 May 2024 14:59:11 +0100 Subject: [PATCH 39/63] feat(file-storage): add padding support to v2 writer --- storage/mater/src/v2/writer.rs | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/storage/mater/src/v2/writer.rs b/storage/mater/src/v2/writer.rs index 91efdeebd..5929f2101 100644 --- a/storage/mater/src/v2/writer.rs +++ b/storage/mater/src/v2/writer.rs @@ -6,7 +6,6 @@ use super::{Header, PRAGMA}; use crate::{v2::index::Index, Error}; /// Low-level CARv2 writer. -// TODO(@jmg-duarte,17/05/2024): add padding support pub struct Writer { writer: W, } @@ -52,11 +51,21 @@ where crate::v1::write_block(&mut self.writer, cid, block).await } - /// Write an [`Index`]; + /// Write an [`Index`]. pub async fn write_index(&mut self, index: &Index) -> Result<(), Error> { crate::v2::index::write_index(&mut self.writer, index).await } + /// Write padding. + /// + /// Padding consists of only `0x0` bytes. + pub async fn write_padding(&mut self, length: usize) -> Result<(), Error> { + for _ in 0..length { + self.writer.write_u8(0).await?; + } + Ok(()) + } + /// Flushes and returns the inner writer. pub async fn finish(mut self) -> Result { self.writer.flush().await?; From 3b7109a5da8533b15564fd023e7ff9de401ad6cc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jose=CC=81=20Duarte?= Date: Fri, 24 May 2024 11:31:54 +0100 Subject: [PATCH 40/63] chore: reset the file-storage folder --- storage/file-storage/.gitkeep | 0 storage/file-storage/Cargo.toml | 15 --------------- storage/file-storage/src/main.rs | 1 - 3 files changed, 16 deletions(-) create mode 100644 storage/file-storage/.gitkeep delete mode 100644 storage/file-storage/Cargo.toml delete mode 100644 storage/file-storage/src/main.rs diff --git a/storage/file-storage/.gitkeep b/storage/file-storage/.gitkeep new file mode 100644 index 000000000..e69de29bb diff --git a/storage/file-storage/Cargo.toml b/storage/file-storage/Cargo.toml deleted file mode 100644 index 392400db6..000000000 --- a/storage/file-storage/Cargo.toml +++ /dev/null @@ -1,15 +0,0 @@ -[package] -authors.workspace = true -edition.workspace = true -homepage.workspace = true -license-file.workspace = true -name = "file-storage" -publish = false -repository.workspace = true -version = "0.1.0" - - -[dependencies] - -[lints] -workspace = true diff --git a/storage/file-storage/src/main.rs b/storage/file-storage/src/main.rs deleted file mode 100644 index f328e4d9d..000000000 --- a/storage/file-storage/src/main.rs +++ /dev/null @@ -1 +0,0 @@ -fn main() {} From 3706d034551f3a6c45d3ec06b4cbb1da8c6b9a79 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jose=CC=81=20Duarte?= Date: Fri, 24 May 2024 16:22:21 +0100 Subject: [PATCH 41/63] fix(file-storage): make generate_multihash available to the rest of the crate --- storage/mater/src/multicodec.rs | 58 +++++++++++++++------------------ storage/mater/src/v1/mod.rs | 2 +- storage/mater/src/v1/reader.rs | 4 +-- storage/mater/src/v1/writer.rs | 4 +-- storage/mater/src/v2/index.rs | 2 +- storage/mater/src/v2/mod.rs | 2 +- storage/mater/src/v2/reader.rs | 6 ++-- storage/mater/src/v2/writer.rs | 6 ++-- 8 files changed, 39 insertions(+), 45 deletions(-) diff --git a/storage/mater/src/multicodec.rs b/storage/mater/src/multicodec.rs index 3b88cca9b..34a37f4fc 100644 --- a/storage/mater/src/multicodec.rs +++ b/storage/mater/src/multicodec.rs @@ -1,43 +1,37 @@ //! Multicodec utilities, such as the list of codes, //! as per the [code table](https://github.com/multiformats/multicodec/blob/c954a787dc6a17d099653e5f90d26fbd177d2074/table.csv). + +use digest::Digest; +use ipld_core::cid::multihash::Multihash; + pub const SHA_256_CODE: u64 = 0x12; pub const SHA_512_CODE: u64 = 0x13; pub const RAW_CODE: u64 = 0x55; pub const DAG_PB_CODE: u64 = 0x70; -// This is easier than adding #[cfg(test)] to each one -#[cfg(test)] -mod private { - use digest::Digest; - use ipld_core::cid::multihash::Multihash; - - use super::{SHA_256_CODE, SHA_512_CODE}; - - /// Trait to ease implementing generic multihash generation. - pub(crate) trait MultihashCode { - /// Multihash code as defined in the [specification](https://github.com/multiformats/multicodec/blob/c954a787dc6a17d099653e5f90d26fbd177d2074/table.csv). - const CODE: u64; - } - - impl MultihashCode for sha2::Sha256 { - const CODE: u64 = SHA_256_CODE; - } +/// Trait to ease implementing generic multihash generation. +pub(crate) trait MultihashCode { + /// Multihash code as defined in the [specification](https://github.com/multiformats/multicodec/blob/c954a787dc6a17d099653e5f90d26fbd177d2074/table.csv). + const CODE: u64; +} - impl MultihashCode for sha2::Sha512 { - const CODE: u64 = SHA_512_CODE; - } +impl MultihashCode for sha2::Sha256 { + const CODE: u64 = SHA_256_CODE; +} - /// Generate a multihash for a byte slice. - pub(crate) fn generate_multihash(bytes: &[u8]) -> Multihash<64> - where - H: Digest + MultihashCode, - { - let mut hasher = H::new(); - hasher.update(&bytes); - let hashed_bytes = hasher.finalize(); - Multihash::wrap(H::CODE, &hashed_bytes).unwrap() - } +impl MultihashCode for sha2::Sha512 { + const CODE: u64 = SHA_512_CODE; } -#[cfg(test)] -pub(crate) use private::*; +/// Generate a multihash for a byte slice. +pub(crate) fn generate_multihash(bytes: B) -> Multihash<64> +where + H: Digest + MultihashCode, + B: AsRef<[u8]>, +{ + let mut hasher = H::new(); + hasher.update(bytes.as_ref()); + let hashed_bytes = hasher.finalize(); + Multihash::wrap(H::CODE, &hashed_bytes) + .expect("the digest should be valid (enforced by the type system)") +} diff --git a/storage/mater/src/v1/mod.rs b/storage/mater/src/v1/mod.rs index f933a728b..89abbc168 100644 --- a/storage/mater/src/v1/mod.rs +++ b/storage/mater/src/v1/mod.rs @@ -57,7 +57,7 @@ mod tests { let file_contents = tokio::fs::read("tests/fixtures/original/lorem.txt") .await .unwrap(); - let contents_multihash = generate_multihash::(&file_contents); + let contents_multihash = generate_multihash::(&file_contents); let root_cid = Cid::new_v1(RAW_CODE, contents_multihash); let written_header = Header::new(vec![root_cid]); diff --git a/storage/mater/src/v1/reader.rs b/storage/mater/src/v1/reader.rs index 3600dab9e..57b7e33e0 100644 --- a/storage/mater/src/v1/reader.rs +++ b/storage/mater/src/v1/reader.rs @@ -122,7 +122,7 @@ mod tests { let contents = tokio::fs::read("tests/fixtures/original/lorem.txt") .await .unwrap(); - let contents_multihash = generate_multihash::(&contents); + let contents_multihash = generate_multihash::(&contents); let contents_cid = Cid::new_v1(RAW_CODE, contents_multihash); let file = File::open("tests/fixtures/car_v1/lorem_header.car") @@ -142,7 +142,7 @@ mod tests { let contents = tokio::fs::read("tests/fixtures/original/lorem.txt") .await .unwrap(); - let contents_multihash = generate_multihash::(&contents); + let contents_multihash = generate_multihash::(&contents); let contents_cid = Cid::new_v1(RAW_CODE, contents_multihash); let file = File::open("tests/fixtures/car_v1/lorem.car").await.unwrap(); diff --git a/storage/mater/src/v1/writer.rs b/storage/mater/src/v1/writer.rs index 1b80c78df..90da78186 100644 --- a/storage/mater/src/v1/writer.rs +++ b/storage/mater/src/v1/writer.rs @@ -93,7 +93,7 @@ mod tests { let file_contents = tokio::fs::read("tests/fixtures/original/lorem.txt") .await .unwrap(); - let contents_multihash = generate_multihash::(&file_contents); + let contents_multihash = generate_multihash::(&file_contents); let root_cid = Cid::new_v1(RAW_CODE, contents_multihash); let mut writer = Writer::test_writer(); @@ -115,7 +115,7 @@ mod tests { let file_contents = tokio::fs::read("tests/fixtures/original/lorem.txt") .await .unwrap(); - let contents_multihash = generate_multihash::(&file_contents); + let contents_multihash = generate_multihash::(&file_contents); let root_cid = Cid::new_v1(RAW_CODE, contents_multihash); let mut writer = Writer::test_writer(); diff --git a/storage/mater/src/v2/index.rs b/storage/mater/src/v2/index.rs index d4d0f82ea..a5f78dfca 100644 --- a/storage/mater/src/v2/index.rs +++ b/storage/mater/src/v2/index.rs @@ -425,7 +425,7 @@ mod tests { codec_frequencies.insert(cid.codec(), 1); } - let multihash = generate_multihash::(&block); + let multihash = generate_multihash::(&block); assert_eq!(cid.hash(), &multihash); } diff --git a/storage/mater/src/v2/mod.rs b/storage/mater/src/v2/mod.rs index 66e36aa24..0d06b2389 100644 --- a/storage/mater/src/v2/mod.rs +++ b/storage/mater/src/v2/mod.rs @@ -102,7 +102,7 @@ mod tests { let file_contents = tokio::fs::read("tests/fixtures/original/lorem.txt") .await .unwrap(); - let contents_multihash = generate_multihash::(&file_contents); + let contents_multihash = generate_multihash::(&file_contents); let root_cid = Cid::new_v1(RAW_CODE, contents_multihash); let written_header = Header::new(false, 51, 7661, 7712); diff --git a/storage/mater/src/v2/reader.rs b/storage/mater/src/v2/reader.rs index 9671e71c0..66428b222 100644 --- a/storage/mater/src/v2/reader.rs +++ b/storage/mater/src/v2/reader.rs @@ -142,7 +142,7 @@ mod tests { let file_contents = tokio::fs::read("tests/fixtures/original/lorem.txt") .await .unwrap(); - let contents_multihash = generate_multihash::(&file_contents); + let contents_multihash = generate_multihash::(&file_contents); let contents_cid = Cid::new_v1(RAW_CODE, contents_multihash); let file = File::open("tests/fixtures/car_v2/lorem.car").await.unwrap(); @@ -176,7 +176,7 @@ mod tests { let file_contents = tokio::fs::read("tests/fixtures/original/lorem.txt") .await .unwrap(); - let contents_multihash = generate_multihash::(&file_contents); + let contents_multihash = generate_multihash::(&file_contents); let file = File::open("tests/fixtures/car_v2/lorem.car").await.unwrap(); let mut reader = Reader::new(file); @@ -210,7 +210,7 @@ mod tests { let file_contents = tokio::fs::read("tests/fixtures/original/lorem.txt") .await .unwrap(); - let contents_multihash = generate_multihash::(&file_contents); + let contents_multihash = generate_multihash::(&file_contents); let contents_cid = Cid::new_v1(RAW_CODE, contents_multihash); let file = File::open("tests/fixtures/car_v2/lorem.car").await.unwrap(); diff --git a/storage/mater/src/v2/writer.rs b/storage/mater/src/v2/writer.rs index 5929f2101..a3c2e657e 100644 --- a/storage/mater/src/v2/writer.rs +++ b/storage/mater/src/v2/writer.rs @@ -155,7 +155,7 @@ mod tests { let file_contents = tokio::fs::read("tests/fixtures/original/lorem.txt") .await .unwrap(); - let contents_multihash = generate_multihash::(&file_contents); + let contents_multihash = generate_multihash::(&file_contents); let root_cid = Cid::new_v1(RAW_CODE, contents_multihash); // To simplify testing, the values were extracted using `car inspect` @@ -230,7 +230,7 @@ mod tests { let mut file_blocks = vec![]; while let Some(chunk) = file_chunker.next().await { let chunk = chunk.unwrap(); - let multihash = generate_multihash::(&chunk); + let multihash = generate_multihash::(&chunk); let cid = Cid::new_v1(RAW_CODE, multihash); file_blocks.push((cid, chunk)); } @@ -257,7 +257,7 @@ mod tests { ) .unwrap(); let root_cid = { - let multihash = generate_multihash::(&node_bytes); + let multihash = generate_multihash::(&node_bytes); Cid::new_v1(DAG_PB_CODE, multihash) }; From 34fa1ba8968b9950bd9c6859cd0e740683f50208 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jose=CC=81=20Duarte?= Date: Mon, 27 May 2024 19:47:46 +0100 Subject: [PATCH 42/63] feat(file-storage): add balanced tree note: not fully working, there's an extra layer over the nodes somewhere --- Cargo.lock | 40 ++- Cargo.toml | 6 +- storage/mater/Cargo.toml | 25 +- storage/mater/README.md | 2 + storage/mater/src/lib.rs | 217 ++++++++++++++++ storage/mater/src/unixfs/mod.rs | 358 ++++++++++++++++++++++++++ storage/mater/src/unixfs/unixfs.proto | 30 +++ storage/mater/src/unixfs/unixfs_pb.rs | 149 +++++++++++ storage/mater/src/v1/mod.rs | 1 + storage/mater/src/v1/writer.rs | 16 +- storage/mater/src/v2/index.rs | 56 ++-- storage/mater/src/v2/mod.rs | 7 + storage/mater/src/v2/writer.rs | 26 +- 13 files changed, 881 insertions(+), 52 deletions(-) create mode 100644 storage/mater/src/unixfs/mod.rs create mode 100644 storage/mater/src/unixfs/unixfs.proto create mode 100644 storage/mater/src/unixfs/unixfs_pb.rs diff --git a/Cargo.lock b/Cargo.lock index 8c3c81d17..3814e5e35 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -751,6 +751,28 @@ dependencies = [ "windows-sys 0.52.0", ] +[[package]] +name = "async-stream" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd56dd203fef61ac097dd65721a419ddccb106b2d2b70ba60a6b529f03961a51" +dependencies = [ + "async-stream-impl", + "futures-core", + "pin-project-lite 0.2.14", +] + +[[package]] +name = "async-stream-impl" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.61", +] + [[package]] name = "async-task" version = "4.7.1" @@ -3256,10 +3278,6 @@ dependencies = [ "log", ] -[[package]] -name = "file-storage" -version = "0.1.0" - [[package]] name = "filetime" version = "0.2.23" @@ -4530,6 +4548,15 @@ dependencies = [ "either", ] +[[package]] +name = "itertools" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186" +dependencies = [ + "either", +] + [[package]] name = "itoa" version = "1.0.11" @@ -5522,12 +5549,17 @@ checksum = "2532096657941c2fea9c289d370a250971c689d4f143798ff67113ec042024a5" name = "mater" version = "0.1.0" dependencies = [ + "async-stream", "bitflags 2.5.0", "byteorder", + "bytes", "digest 0.10.7", + "futures", "integer-encoding 4.0.0", "ipld-core", "ipld-dagpb", + "itertools 0.13.0", + "quick-protobuf", "rand 0.8.5", "serde", "serde_ipld_dagcbor", diff --git a/Cargo.toml b/Cargo.toml index 19649e96d..01482d965 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -7,7 +7,7 @@ repository = "https://github.com/eigerco/polka-storage" [workspace] resolver = "2" -members = ["node", "runtime", "storage/file-storage", "storage/mater"] +members = ["node", "runtime", "storage/mater"] # FIXME(#@jmg-duarte,#7,14/5/24): remove the patch once something >1.11.0 is released [patch.'https://github.com/paritytech/litep2p'] @@ -28,6 +28,7 @@ panic = 'abort' # Use abort on panic to reduce binary size substrate-build-script-utils = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-v1.11.0" } substrate-wasm-builder = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-v1.11.0" } +bytes = "1.6.0" clap = { version = "4.5.3" } codec = { package = "parity-scale-codec", version = "3.0.0", default-features = false } color-print = "0.3.4" @@ -57,13 +58,14 @@ ipld-core = "0.4.1" rand = "0.8.5" sha2 = "0.10.8" digest = "0.10.7" -rs_merkle = "1.4.2" integer-encoding = "4.0.0" byteorder = "1.5.0" bitflags = "2.5.0" tokio-util = "0.7.11" tokio-stream = "0.1.15" ipld-dagpb = "0.2.1" +itertools = "0.13.0" +async-stream = "0.3.5" # Local polka-storage-runtime = { path = "runtime" } diff --git a/storage/mater/Cargo.toml b/storage/mater/Cargo.toml index f55f36ba6..115e66400 100644 --- a/storage/mater/Cargo.toml +++ b/storage/mater/Cargo.toml @@ -11,24 +11,27 @@ version = "0.1.0" [dependencies] # TODO(@jmg-duarte,15/05/2024): reduce the required features -bitflags = { workspace = true } +bitflags.workspace = true byteorder = { workspace = true, features = ["i128"] } integer-encoding = { workspace = true, features = ["tokio_async"] } ipld-core = { workspace = true, features = ["serde"] } serde = { workspace = true, features = ["derive"] } -serde_ipld_dagcbor = { workspace = true } -thiserror = { workspace = true } +serde_ipld_dagcbor.workspace = true +thiserror.workspace = true tokio = { workspace = true, features = ["full"] } +quick-protobuf.workspace = true +tokio-stream.workspace = true +tokio-util = { workspace = true, features = ["io"] } +bytes.workspace = true +sha2.workspace = true +digest.workspace = true +ipld-dagpb.workspace = true +itertools.workspace = true +async-stream.workspace = true +futures.workspace = true [dev-dependencies] -digest = { workspace = true } -ipld-dagpb = { workspace = true } -rand = { workspace = true } -sha2 = { workspace = true } -tokio-stream = { workspace = true } -tokio-util = { workspace = true, features = ["io"] } -# rs_merkle = { workspace = true } -# quick-protobuf = { workspace = true } +rand.workspace = true [lints] diff --git a/storage/mater/README.md b/storage/mater/README.md index 1cf6340ee..18f47c6ee 100644 --- a/storage/mater/README.md +++ b/storage/mater/README.md @@ -2,6 +2,8 @@ A Rust library to read and write CAR files. +This library is based on [beetle](https://github.com/n0-computer/beetle). + ## Specifications CARv1 specification: https://ipld.io/specs/transport/car/carv1/ diff --git a/storage/mater/src/lib.rs b/storage/mater/src/lib.rs index 1a277da78..0de13b234 100644 --- a/storage/mater/src/lib.rs +++ b/storage/mater/src/lib.rs @@ -1,9 +1,22 @@ #![warn(unused_crate_dependencies)] mod multicodec; +mod unixfs; mod v1; mod v2; +use std::{ + collections::{HashMap, HashSet, VecDeque}, + io::Cursor, +}; + +use bytes::Bytes; +use integer_encoding::VarInt; +use ipld_core::codec::Codec; +use multicodec::SHA_256_CODE; +use serde_ipld_dagcbor::codec::DagCborCodec; +use sha2::{Digest, Sha256}; +use tokio::io::AsyncWrite; pub use v1::{Header as CarV1Header, Reader as CarV1Reader, Writer as CarV1Writer}; pub use v2::{ Characteristics, Header as CarV2Header, Index, IndexEntry, IndexSorted, MultihashIndexSorted, @@ -69,4 +82,208 @@ pub enum Error { /// See [`MultihashError`](ipld_core::cid::multihash::Error) for more information. #[error(transparent)] MultihashError(#[from] ipld_core::cid::multihash::Error), + + /// See [`ProtobufError`](quick_protobuf::Error) for more information. + #[error(transparent)] + ProtobufError(#[from] quick_protobuf::Error), + + /// See [`DagPbError`](ipld_dagpb::Error) for more information. + #[error(transparent)] + DagPbError(#[from] ipld_dagpb::Error), +} + +#[cfg(test)] +mod tests { + use std::{ + collections::{BTreeMap, VecDeque}, + io::Cursor, + }; + + use tokio::fs::File; + use tokio_stream::StreamExt; + use tokio_util::io::ReaderStream; + + use crate::{ + multicodec::SHA_256_CODE, unixfs::stream_balanced_tree, v2::test_utils::assert_buffer_eq, + Blockstore, CarV1Header, CarV2Header, CarV2Writer, Index, IndexEntry, + }; + + #[tokio::test] + async fn file_roundtrip_lorem() { + let file = File::open("tests/fixtures/original/lorem.txt") + .await + .unwrap(); + let chunks = ReaderStream::with_capacity(file, 1024 * 256); + + let tree = stream_balanced_tree(chunks, 174); + tokio::pin!(tree); + + let mut store = Blockstore::new(); + while let Some(block) = tree.next().await { + let block = block.unwrap(); + store.push(block.cid, block.data, true); + // in this particular case, this is ok because we know it's the first and last + store.set_root(block.cid); + } + assert_eq!(store.n_blocks(), 1); + + let mut result_buffer = vec![]; + store.write(&mut result_buffer).await.unwrap(); + + let car_contents = tokio::fs::read("tests/fixtures/car_v2/lorem.car") + .await + .unwrap(); + + assert_buffer_eq(&result_buffer, &car_contents); + } + + #[tokio::test] + async fn file_roundtrip_spaceglenda() { + let file = File::open("tests/fixtures/original/spaceglenda.jpg") + .await + .unwrap(); + let chunks = ReaderStream::with_capacity(file, 1024 * 256); + + let tree = stream_balanced_tree(chunks, 174); + tokio::pin!(tree); + + let mut store = Blockstore::new(); + while let Some(block) = tree.next().await { + let block = block.unwrap(); + store.push(block.cid, block.data, true); + if !block.links.is_empty() { + // in this particular case, this is ok because we know it's the first and last + store.set_root(block.cid); + } + } + assert_eq!(store.n_blocks(), 4); + + let mut result_buffer = vec![]; + store.write(&mut result_buffer).await.unwrap(); + + tokio::fs::write("test", &result_buffer).await.unwrap(); + + let car_contents = tokio::fs::read("tests/fixtures/car_v2/spaceglenda.car") + .await + .unwrap(); + + assert_buffer_eq(&result_buffer, &car_contents); + } +} + +struct Blockstore { + root: Option, + blocks: Vec<(Cid, Bytes)>, + indexed: HashSet, +} + +impl Blockstore { + fn new() -> Self { + Self { + root: None, + blocks: vec![], + indexed: HashSet::new(), + } + } + + fn header_v2(&self) -> CarV2Header { + let data_offset = CarV2Header::size() as u64; + let data_size: u64 = self + .blocks + .iter() + .map(|(cid, bytes)| { + let size = (cid.encoded_len() + bytes.len()) as u64; + let varint_size = size.required_space() as u64; + size + varint_size + }) + .sum(); + + // The size of the [`Header`] when encoded using [`DagCborCodec`]. + // + // The formula is: `overhead + 37 * roots.len()`. + // It is based on reversing the CBOR encoding, see an example: + // ```text + // A2 # map(2) + // 65 # text(5) + // 726F6F7473 # "roots" + // 81 # array(1) + // D8 2A # tag(42) + // 58 25 # bytes(37) + // 00015512206D623B17625E25CBDA46D17AC89C26B3DB63544701E2C0592626320DBEFD515B + // 67 # text(7) + // 76657273696F6E # "version" + // 01 # unsigned(1) + // ``` + // In this case we're doing a single root, so we just use the fixed size: 58 + // let header_v1_length = 58; + let header_v1_length = DagCborCodec::encode_to_vec(&self.header_v1()) + .unwrap() + .len() as u64; + let header_v1_varint = header_v1_length.required_space() as u64; + + let car_v1_payload_length = header_v1_length + header_v1_varint + data_size; + + let index_offset = data_offset + car_v1_payload_length; // when there's no padding + CarV2Header::new(false, data_offset, car_v1_payload_length, index_offset) + } + + fn header_v1(&self) -> Option { + self.root.map(|root| CarV1Header::new(vec![root])) + } + + fn push(&mut self, cid: Cid, data: Bytes, index: bool) { + self.blocks.push((cid, data)); + if index { + self.indexed.insert(cid); + } + } + + fn set_root(&mut self, cid: Cid) { + self.root = Some(cid); + } + + fn n_blocks(&self) -> usize { + self.blocks.len() + } + + async fn write(mut self, writer: W) -> Result + where + W: AsyncWrite + Unpin, + { + let mut position = 0; + + let mut writer = CarV2Writer::new(writer); + let header_v2 = self.header_v2(); + let car_v1_start = writer.write_header(&header_v2).await?; + position += car_v1_start; + let header_v1 = self.header_v1().ok_or(Error::EmptyRootsError)?; + position += writer.write_v1_header(&header_v1).await?; + + let mut offsets = HashMap::new(); // 110 + for (cid, block) in self.blocks.drain(..) { + if self.indexed.contains(&cid) { + offsets.insert(cid, position - car_v1_start); + } + position += writer.write_block(&cid, &block).await?; + } + // 7712 + + let index = Index::MultihashIndexSorted(MultihashIndexSorted::from_single_width( + SHA_256_CODE, + SingleWidthIndex::new( + Sha256::output_size() as u32, + offsets.len() as u64, + offsets + .into_iter() + .map(|(cid, offset)| { + IndexEntry::new(cid.hash().digest().to_vec(), offset as u64) + }) + .collect(), + ) + .into(), + )); + position += writer.write_index(&index).await?; + + Ok(position) + } } diff --git a/storage/mater/src/unixfs/mod.rs b/storage/mater/src/unixfs/mod.rs new file mode 100644 index 000000000..69a1d89bf --- /dev/null +++ b/storage/mater/src/unixfs/mod.rs @@ -0,0 +1,358 @@ +//! The original implementation of this module is located at +//! . + +mod unixfs_pb; + +use std::{collections::VecDeque, thread::current, vec::Drain}; + +use async_stream::try_stream; +use bytes::Bytes; +use futures::{TryStream, TryStreamExt}; +use ipld_core::{ + cid::{Cid, CidGeneric}, + codec::Codec, +}; +use ipld_dagpb::{DagPbCodec, PbLink, PbNode}; +use itertools::{IntoChunks, Itertools}; +use quick_protobuf::MessageWrite; +use sha2::{Digest, Sha256}; +use tokio::{fs::File, io::AsyncRead, runtime::TryCurrentError}; +use tokio_stream::{Stream, StreamExt}; +use tokio_util::io::ReaderStream; + +use crate::{ + multicodec::{generate_multihash, DAG_PB_CODE, RAW_CODE}, + Error, +}; + +#[derive(Debug)] +pub(crate) struct LinkInfo { + raw_data_length: u64, + encoded_data_length: u64, +} + +impl LinkInfo { + fn new(raw_data_length: u64, encoded_data_length: u64) -> Self { + Self { + raw_data_length, + encoded_data_length, + } + } +} + +#[derive(Debug)] +pub(crate) struct Block { + pub cid: Cid, + pub data: Bytes, + pub links: Vec, +} + +impl Block { + fn new(cid: Cid, data: Bytes, links: Vec) -> Self { + Self { cid, data, links } + } +} + +#[derive(Debug)] +enum TreeNode { + Leaf(Bytes), + Stem(Vec<(Cid, LinkInfo)>), +} + +impl TreeNode { + fn encode(self) -> Result<(Block, LinkInfo), Error> { + match self { + TreeNode::Leaf(bytes) => { + let data_length = bytes.len() as u64; + let multihash = generate_multihash::(&bytes); + // Storing the block as RAW as go-car does + // TODO(@jmg-duarte,27/05/2024): find the go-car link + let cid = Cid::new_v1(RAW_CODE, multihash); + let block = Block::new(cid, bytes, vec![]); + // The data is raw, so the raw length == encoded length + let link_info = LinkInfo::new(data_length, data_length); + Ok((block, link_info)) + } + TreeNode::Stem(links) => { + // TODO(@jmg-duarte,27/05/2024): the last issue is somewhere around here + // there are extra bytes and hashes being calculated on the wrong content + // presumably the extra bytes + + let mut encoded_length: u64 = + links.iter().map(|(_, l)| l.encoded_data_length).sum(); + let blocksizes: Vec<_> = links.iter().map(|(_, l)| l.raw_data_length).collect(); + let filesize: u64 = blocksizes.iter().sum(); + let pb_links: Vec<_> = links + .into_iter() + .map(|(cid, link)| PbLink { + cid, + name: None, + // TODO(@jmg-duarte,27/05/2024): check this: it might not be compliant with go-car, due to being taken from iroh + size: Some(link.encoded_data_length), + }) + .collect(); + + let pb_node_data = unixfs_pb::Data { + Type: unixfs_pb::mod_Data::DataType::File, + filesize: Some(filesize), + blocksizes, + ..Default::default() + }; + let mut pb_node_data_bytes = vec![]; + let mut pb_node_data_writer = quick_protobuf::Writer::new(&mut pb_node_data_bytes); + pb_node_data.write_message(&mut pb_node_data_writer)?; + let pb_node_data_length = pb_node_data_bytes.len() as u64; + + let pb_node = PbNode { + links: pb_links, + data: Some(pb_node_data_bytes.into()), + }; + + let outer = DagPbCodec::encode_to_vec(&pb_node)?; + let cid = Cid::new_v1(DAG_PB_CODE, generate_multihash::(&outer)); + encoded_length += outer.len() as u64; + + Ok(( + Block::new( + cid, + outer.into(), + pb_node.links.iter().map(|link| link.cid).collect(), + ), + LinkInfo { + raw_data_length: pb_node_data_length, + encoded_data_length: encoded_length, + }, + )) + } + } + } +} + +/// This function takes a stream of chunks of bytes and returns a stream of [`Block`]s. +/// +/// It works by accumulating `width` blocks and lazily creating stems. +/// The tree grows upwards and does not keep previously completed `width` blocks. +/// +/// As a demonstration, consider a `width` of 2 and an `input` stream that will yield 7 blocks. +/// ```text +/// Input stream <- Block 1, Block 2, Block 3, Block 4, Block 5, Block 6, Block 7 +/// ``` +/// +/// Each time a block is taken out of the stream, it is stored in the lower level of the tree, +/// but it is also yielded as output: +/// ```text +/// Input stream <- Block 2, Block 3, Block 4, Block 5, Block 6, Block 7 +/// Tree: [ +/// [Block 1] +/// ] +/// Output stream -> Block 1 +/// ``` +/// +/// Once the first `width` blocks (in this case, 2) are taken from the stream: +/// * A new stem is added, linking back to the two blocks +/// ```text +/// Input stream <- | Block 3 | Block 4 | Block 5 | Block 6 | Block 7 | +/// Tree: [ +/// [Block 1, Block 2], +/// [Stem (B1, B2)] +/// ] +/// ``` +/// * The previous level to the stem is evicted +/// ```text +/// Input stream <- | Block 3 | Block 4 | Block 5 | Block 6 | Block 7 | +/// Tree: [ +/// [], +/// [Stem 1 (B1, B2)] +/// ] +/// ``` +/// * The new stem is yielded +/// ```text +/// Input stream <- Block 3, Block 4, Block 5, Block 6, Block 7 +/// Tree: [ +/// [], +/// [Stem 1 (B1, B2)] +/// ] +/// Output stream -> Stem (B1, B2) +/// ``` +/// +/// This process happens recursively, so when the stem level is full, like so: +/// ```text +/// Input stream <- Block 5, Block 6, Block 7 +/// Tree: [ +/// [], +/// [Stem 1 (B1, B2), Stem 2 (B3, B4)] +/// ] +/// ``` +/// +/// A new stem is built upwards: +/// ```text +/// Input stream <- Block 5, Block 6, Block 7 +/// Tree: [ +/// [], +/// [], +/// [Stem 3 (S1, S2)] +/// ] +/// Output stream -> Stem 3 (S1, S2) +/// ``` +/// +/// Once the stream is exhausted, we need to clean up any remaining state: +/// ```text +/// Input stream <- +/// Tree: [ +/// [Block 7], +/// [Stem 4 (B5, B6)], +/// [Stem 3 (S1, S2)], +/// ] +/// ``` +/// +/// In this case, the yielded tree looks like: +/// ```text +/// S3 +/// / \ +/// S1 S2 S4 +/// / \ / \ / \ +/// B1 B2 B3 B4 B5 B6 B7 +/// ``` +/// +/// We work bottom-up, removing the levels one by one, creating new stems from them and returning the stems: +/// ```text +/// Tree: [ +/// [], # popped +/// [Stem 4 (B5, B6), Stem 5 (B7)], +/// [Stem 3 (S1, S2)] +/// ] +/// Output stream -> Stem 5 (B7) +/// ``` +/// +/// The previous tree now looks like: +/// ```text +/// S3 +/// / \ +/// S1 S2 S4 S5 +/// / \ / \ / \ | +/// B1 B2 B3 B4 B5 B6 B7 +/// ``` +/// +/// If we repeat the process again: +/// ```text +/// Tree: [ +/// [Stem 4 (B5, B6), Stem 5 (B7)], # popped +/// [Stem 3 (S1, S2), Stem 6 (S4, S5)] +/// ] +/// Output stream -> Stem 6 (S4, S5) +/// ``` +/// +/// The tree becomes: +/// ```text +/// S3 S6 +/// / \ / \ +/// S1 S2 S4 S5 +/// / \ / \ / \ | +/// B1 B2 B3 B4 B5 B6 B7 +/// ``` +/// +/// And finally, we build the last stem, yielding it: +/// ```text +/// Tree: [ +/// [Stem 3 (S1, S2), Stem 6 (S4, S5)] # popped +/// ] +/// Output stream -> Stem 7 (S3, S6) +/// ``` +/// +/// Making the final tree: +/// ```text +/// S7 +/// / \ +/// S3 S6 +/// / \ / \ +/// S1 S2 S4 S5 +/// / \ / \ / \ | +/// B1 B2 B3 B4 B5 B6 B7 +/// ``` +/// +/// The original implementation is in +/// . +pub(crate) fn stream_balanced_tree( + input: I, + width: usize, +) -> impl Stream> +where + I: Stream> + Send, +{ + try_stream! { + let mut tree: VecDeque> = VecDeque::new(); + tree.push_back(vec![]); + + let input = input + .err_into::() + // The TreeNode::Leaf(data).encode() just wraps it with a Cid marking the payload as Raw + // we may be able move this responsibility to the caller for more efficient memory usage + .map(|data| data.and_then(|data| TreeNode::Leaf(data).encode())) + .err_into::(); + tokio::pin!(input); + + while let Some(data) = input.next().await { + let (block, link_info) = data?; + let tree_height = tree.len(); + + // Check if the leaf node is full + // i.e. we can build a new stem + if tree[0].len() == width { + // Go up the tree, as adding a new stem + // may complete another level and so on + for level in 0..tree_height { + // If a node is not full, stop there + // no more "stem-ing" to be done + if tree[level].len() < width { + break; + } + + // If we're at the top of the tree, we're going to need another level. + if level == tree_height - 1 { + tree.push_back(Vec::with_capacity(width)); + } + + // Replace the previous level elements with a new empty vector + // while `tree[level].drain().collect>` is much more readable + // it's most likely less performant (I didn't measure) + // due to the different nature of the approaches (batch vs iterator) + let links = std::mem::replace(&mut tree[level], Vec::with_capacity(width)); + let (block, link_info) = TreeNode::Stem(links).encode()?; + let cid = block.cid; // Cid: Copy + yield block; + + tree[level + 1].push((cid, link_info)); + } + // Once we're done "trimming" the tree + // it's good to receive new elements + } + + // If the tree level is empty, we can push, + // if the tree level was not empty, the `for` took care of it + tree[0].push((block.cid, link_info)); + yield block; + } + + // If `input` yielded a single block, + // the tree has height 1 and the lower level has a single element + if tree.len() == 1 && tree[0].len() == 1 { + return; + } + + // Once `input` is exhausted, we need to perform cleanup of any leftovers, + // to do so, we start by popping levels from the front and building stems over them. + while let Some(links) = tree.pop_front() { + let (block, link_info) = TreeNode::Stem(links).encode()?; // TODO + let cid = block.cid; + yield block; + + // If there's still a level in the front, it means the stem we just built will have a parent + // we push the stem into the front level so we can build the parent on the next iteration + if let Some(front) = tree.front_mut() { + front.push((cid, link_info)); + } + // Once there's nothing else in the front, that means we just yielded the root + // and the current `while` will stop in the next iteration + } + } +} diff --git a/storage/mater/src/unixfs/unixfs.proto b/storage/mater/src/unixfs/unixfs.proto new file mode 100644 index 000000000..fa1df2770 --- /dev/null +++ b/storage/mater/src/unixfs/unixfs.proto @@ -0,0 +1,30 @@ +// Taken from ipfs/boxo +// https://github.com/ipfs/boxo/blob/1bcd5451413c7ce3b1f647191109bcc2d307e584/ipld/unixfs/pb/unixfs.proto +syntax = "proto2"; + +package unixfs.v1.pb; + +option go_package = "unixfs_pb"; + +message Data { + enum DataType { + Raw = 0; + Directory = 1; + File = 2; + Metadata = 3; + Symlink = 4; + HAMTShard = 5; + } + + required DataType Type = 1; + optional bytes Data = 2; + optional uint64 filesize = 3; + repeated uint64 blocksizes = 4; + + optional uint64 hashType = 5; + optional uint64 fanout = 6; +} + +message Metadata { + optional string MimeType = 1; +} diff --git a/storage/mater/src/unixfs/unixfs_pb.rs b/storage/mater/src/unixfs/unixfs_pb.rs new file mode 100644 index 000000000..3667026a4 --- /dev/null +++ b/storage/mater/src/unixfs/unixfs_pb.rs @@ -0,0 +1,149 @@ +// Automatically generated rust module for 'unixfs.proto' file + +#![allow(non_snake_case)] +#![allow(non_upper_case_globals)] +#![allow(non_camel_case_types)] +#![allow(unused_imports)] +#![allow(unknown_lints)] +#![allow(clippy::all)] +#![cfg_attr(rustfmt, rustfmt_skip)] + + +use std::borrow::Cow; +use quick_protobuf::{MessageInfo, MessageRead, MessageWrite, BytesReader, Writer, WriterBackend, Result}; +use quick_protobuf::sizeofs::*; +use super::super::*; + +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Debug, Default, PartialEq, Clone)] +pub struct Data<'a> { + pub Type: crate::unixfs::unixfs_pb::mod_Data::DataType, + pub Data: Option>, + pub filesize: Option, + pub blocksizes: Vec, + pub hashType: Option, + pub fanout: Option, +} + +impl<'a> MessageRead<'a> for Data<'a> { + fn from_reader(r: &mut BytesReader, bytes: &'a [u8]) -> Result { + let mut msg = Self::default(); + while !r.is_eof() { + match r.next_tag(bytes) { + Ok(8) => msg.Type = r.read_enum(bytes)?, + Ok(18) => msg.Data = Some(r.read_bytes(bytes).map(Cow::Borrowed)?), + Ok(24) => msg.filesize = Some(r.read_uint64(bytes)?), + Ok(32) => msg.blocksizes.push(r.read_uint64(bytes)?), + Ok(40) => msg.hashType = Some(r.read_uint64(bytes)?), + Ok(48) => msg.fanout = Some(r.read_uint64(bytes)?), + Ok(t) => { r.read_unknown(bytes, t)?; } + Err(e) => return Err(e), + } + } + Ok(msg) + } +} + +impl<'a> MessageWrite for Data<'a> { + fn get_size(&self) -> usize { + 0 + + 1 + sizeof_varint(*(&self.Type) as u64) + + self.Data.as_ref().map_or(0, |m| 1 + sizeof_len((m).len())) + + self.filesize.as_ref().map_or(0, |m| 1 + sizeof_varint(*(m) as u64)) + + self.blocksizes.iter().map(|s| 1 + sizeof_varint(*(s) as u64)).sum::() + + self.hashType.as_ref().map_or(0, |m| 1 + sizeof_varint(*(m) as u64)) + + self.fanout.as_ref().map_or(0, |m| 1 + sizeof_varint(*(m) as u64)) + } + + fn write_message(&self, w: &mut Writer) -> Result<()> { + w.write_with_tag(8, |w| w.write_enum(*&self.Type as i32))?; + if let Some(ref s) = self.Data { w.write_with_tag(18, |w| w.write_bytes(&**s))?; } + if let Some(ref s) = self.filesize { w.write_with_tag(24, |w| w.write_uint64(*s))?; } + for s in &self.blocksizes { w.write_with_tag(32, |w| w.write_uint64(*s))?; } + if let Some(ref s) = self.hashType { w.write_with_tag(40, |w| w.write_uint64(*s))?; } + if let Some(ref s) = self.fanout { w.write_with_tag(48, |w| w.write_uint64(*s))?; } + Ok(()) + } +} + +pub mod mod_Data { + + +#[derive(Debug, PartialEq, Eq, Clone, Copy)] +pub enum DataType { + Raw = 0, + Directory = 1, + File = 2, + Metadata = 3, + Symlink = 4, + HAMTShard = 5, +} + +impl Default for DataType { + fn default() -> Self { + DataType::Raw + } +} + +impl From for DataType { + fn from(i: i32) -> Self { + match i { + 0 => DataType::Raw, + 1 => DataType::Directory, + 2 => DataType::File, + 3 => DataType::Metadata, + 4 => DataType::Symlink, + 5 => DataType::HAMTShard, + _ => Self::default(), + } + } +} + +impl<'a> From<&'a str> for DataType { + fn from(s: &'a str) -> Self { + match s { + "Raw" => DataType::Raw, + "Directory" => DataType::Directory, + "File" => DataType::File, + "Metadata" => DataType::Metadata, + "Symlink" => DataType::Symlink, + "HAMTShard" => DataType::HAMTShard, + _ => Self::default(), + } + } +} + +} + +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Debug, Default, PartialEq, Clone)] +pub struct Metadata<'a> { + pub MimeType: Option>, +} + +impl<'a> MessageRead<'a> for Metadata<'a> { + fn from_reader(r: &mut BytesReader, bytes: &'a [u8]) -> Result { + let mut msg = Self::default(); + while !r.is_eof() { + match r.next_tag(bytes) { + Ok(10) => msg.MimeType = Some(r.read_string(bytes).map(Cow::Borrowed)?), + Ok(t) => { r.read_unknown(bytes, t)?; } + Err(e) => return Err(e), + } + } + Ok(msg) + } +} + +impl<'a> MessageWrite for Metadata<'a> { + fn get_size(&self) -> usize { + 0 + + self.MimeType.as_ref().map_or(0, |m| 1 + sizeof_len((m).len())) + } + + fn write_message(&self, w: &mut Writer) -> Result<()> { + if let Some(ref s) = self.MimeType { w.write_with_tag(10, |w| w.write_string(&**s))?; } + Ok(()) + } +} + diff --git a/storage/mater/src/v1/mod.rs b/storage/mater/src/v1/mod.rs index 89abbc168..ad0c06cf6 100644 --- a/storage/mater/src/v1/mod.rs +++ b/storage/mater/src/v1/mod.rs @@ -3,6 +3,7 @@ mod writer; use ipld_core::cid::Cid; use serde::{Deserialize, Serialize}; +use serde_ipld_dagcbor::codec::DagCborCodec; pub use crate::v1::{reader::Reader, writer::Writer}; pub(crate) use crate::v1::{ diff --git a/storage/mater/src/v1/writer.rs b/storage/mater/src/v1/writer.rs index 90da78186..0a06429f2 100644 --- a/storage/mater/src/v1/writer.rs +++ b/storage/mater/src/v1/writer.rs @@ -7,14 +7,14 @@ pub use crate::v1::Header; use crate::Error; /// Write [`crate::v1::Header`] to the provider writer. -pub(crate) async fn write_header(writer: &mut W, header: &Header) -> Result<(), Error> +pub(crate) async fn write_header(writer: &mut W, header: &Header) -> Result where W: AsyncWrite + Unpin, { let encoded_header = DagCborCodec::encode_to_vec(header)?; - writer.write_varint_async(encoded_header.len()).await?; + let varint_len = writer.write_varint_async(encoded_header.len()).await?; writer.write_all(&encoded_header).await?; - Ok(()) + Ok(varint_len + encoded_header.len()) } /// Write a [`Cid`] and data block to the given writer. @@ -24,7 +24,7 @@ pub(crate) async fn write_block( writer: &mut W, cid: &Cid, block: Block, -) -> Result<(), Error> +) -> Result where W: AsyncWrite + Unpin, Block: AsRef<[u8]>, @@ -32,11 +32,11 @@ where let data = block.as_ref(); let len = cid.encoded_len() + data.len(); - writer.write_varint_async(len).await?; + let varint_len = writer.write_varint_async(len).await?; // This allocation can probably be spared writer.write_all(&cid.to_bytes()).await?; writer.write_all(block.as_ref()).await?; - Ok(()) + Ok(varint_len + cid.encoded_len() + block.as_ref().len()) } /// Low-level CARv1 writer. @@ -58,12 +58,12 @@ where W: AsyncWrite + Unpin, { /// Write a [`crate::v1::Header`]. - pub async fn write_header(&mut self, header: &Header) -> Result<(), Error> { + pub async fn write_header(&mut self, header: &Header) -> Result { write_header(&mut self.writer, header).await } /// Write a [`Cid`] and the respective data block. - pub async fn write_block(&mut self, cid: &Cid, data: &D) -> Result<(), Error> + pub async fn write_block(&mut self, cid: &Cid, data: &D) -> Result where D: AsRef<[u8]>, { diff --git a/storage/mater/src/v2/index.rs b/storage/mater/src/v2/index.rs index a5f78dfca..1d70fbcd1 100644 --- a/storage/mater/src/v2/index.rs +++ b/storage/mater/src/v2/index.rs @@ -1,4 +1,4 @@ -use std::collections::BTreeMap; +use std::{collections::BTreeMap, mem::size_of}; use integer_encoding::{VarIntAsyncReader, VarIntAsyncWriter}; use tokio::io::{AsyncRead, AsyncReadExt, AsyncWrite, AsyncWriteExt}; @@ -135,6 +135,14 @@ pub struct MultihashIndexSorted( pub BTreeMap, ); +impl MultihashIndexSorted { + pub fn from_single_width(code: u64, index: IndexSorted) -> Self { + let mut map = BTreeMap::new(); + map.insert(code, index); + Self(map) + } +} + impl From> for MultihashIndexSorted { fn from(value: BTreeMap) -> Self { Self(value) @@ -166,75 +174,87 @@ impl Index { } } -pub(crate) async fn write_index(mut writer: W, index: &Index) -> Result<(), Error> +pub(crate) async fn write_index(mut writer: W, index: &Index) -> Result where W: AsyncWrite + Unpin, { + let mut written_bytes = 0; match index { Index::IndexSorted(index) => { - writer.write_varint_async(INDEX_SORTED_CODE).await?; - write_index_sorted(&mut writer, index).await?; + written_bytes += writer.write_varint_async(INDEX_SORTED_CODE).await?; + written_bytes += write_index_sorted(&mut writer, index).await?; } Index::MultihashIndexSorted(index) => { - writer + written_bytes += writer .write_varint_async(MULTIHASH_INDEX_SORTED_CODE) .await?; - write_multihash_index_sorted(&mut writer, index).await? + written_bytes += write_multihash_index_sorted(&mut writer, index).await?; } } - Ok(()) + Ok(written_bytes) } pub(crate) async fn write_multihash_index_sorted( mut writer: W, index: &MultihashIndexSorted, -) -> Result<(), Error> +) -> Result where W: AsyncWrite + Unpin, { + let mut written_bytes = 0; writer.write_i32_le(index.0.len() as i32).await?; + written_bytes += size_of::(); for (hash_code, index) in index.0.iter() { writer.write_u64_le(*hash_code).await?; - write_index_sorted(&mut writer, index).await?; + written_bytes += size_of::(); + written_bytes += write_index_sorted(&mut writer, index).await?; } - Ok(()) + Ok(written_bytes) } -pub(crate) async fn write_index_sorted(mut writer: W, index: &IndexSorted) -> Result<(), Error> +pub(crate) async fn write_index_sorted( + mut writer: W, + index: &IndexSorted, +) -> Result where W: AsyncWrite + Unpin, { + let mut written_bytes = 0; writer.write_i32_le(index.0.len() as i32).await?; + written_bytes += size_of::(); for idx in &index.0 { - write_single_width_index(&mut writer, idx).await?; + written_bytes += write_single_width_index(&mut writer, idx).await?; } - Ok(()) + Ok(written_bytes) } pub(crate) async fn write_single_width_index( mut writer: W, index: &SingleWidthIndex, -) -> Result<(), Error> +) -> Result where W: AsyncWrite + Unpin, { + let mut written_bytes = 0; writer.write_u32_le(index.width).await?; + written_bytes += size_of::(); writer .write_u64_le(index.count * (index.width as u64)) .await?; + written_bytes += size_of::(); for entry in &index.entries { - write_index_entry(&mut writer, entry).await?; + written_bytes += write_index_entry(&mut writer, entry).await?; } - Ok(()) + Ok(written_bytes) } -pub(crate) async fn write_index_entry(mut writer: W, entry: &IndexEntry) -> Result<(), Error> +pub(crate) async fn write_index_entry(mut writer: W, entry: &IndexEntry) -> Result where W: AsyncWrite + Unpin, { writer.write_all(&entry.digest).await?; writer.write_u64_le(entry.offset).await?; - Ok(()) + Ok(entry.digest.len() + size_of::()) } pub(crate) async fn read_index(mut reader: R) -> Result diff --git a/storage/mater/src/v2/mod.rs b/storage/mater/src/v2/mod.rs index 0d06b2389..7c8ca2e50 100644 --- a/storage/mater/src/v2/mod.rs +++ b/storage/mater/src/v2/mod.rs @@ -74,6 +74,13 @@ impl Header { index_offset, } } + + /// The [`Header`] size in bytes (includes the pragma). + /// + /// As defined in the [specification](https://ipld.io/specs/transport/car/carv2/#header). + pub const fn size() -> usize { + PRAGMA.len() + 40 + } } #[cfg(test)] diff --git a/storage/mater/src/v2/writer.rs b/storage/mater/src/v2/writer.rs index a3c2e657e..0081ed210 100644 --- a/storage/mater/src/v2/writer.rs +++ b/storage/mater/src/v2/writer.rs @@ -24,7 +24,9 @@ where W: AsyncWrite + Unpin, { /// Write a [`Header`]. - pub async fn write_header(&mut self, header: &Header) -> Result<(), Error> { + /// + /// Returns the number of bytes written. + pub async fn write_header(&mut self, header: &Header) -> Result { self.writer.write(&PRAGMA).await?; let mut buffer = [0; 40]; @@ -35,16 +37,20 @@ where WriteBytesExt::write_u64::(&mut handle, header.index_offset)?; self.writer.write_all(&buffer).await?; - Ok(()) + Ok(PRAGMA.len() + buffer.len()) } /// Write a [`crate::v1::Header`]. - pub async fn write_v1_header(&mut self, v1_header: &crate::v1::Header) -> Result<(), Error> { + /// + /// Returns the number of bytes written. + pub async fn write_v1_header(&mut self, v1_header: &crate::v1::Header) -> Result { crate::v1::write_header(&mut self.writer, v1_header).await } /// Write a [`Cid`] and the respective data block. - pub async fn write_block(&mut self, cid: &Cid, block: &Block) -> Result<(), Error> + /// + /// Returns the number of bytes written. + pub async fn write_block(&mut self, cid: &Cid, block: &Block) -> Result where Block: AsRef<[u8]>, { @@ -52,18 +58,20 @@ where } /// Write an [`Index`]. - pub async fn write_index(&mut self, index: &Index) -> Result<(), Error> { + /// + /// Returns the number of bytes written. + pub async fn write_index(&mut self, index: &Index) -> Result { crate::v2::index::write_index(&mut self.writer, index).await } - /// Write padding. + /// Write padding (`0x0` bytes). /// - /// Padding consists of only `0x0` bytes. - pub async fn write_padding(&mut self, length: usize) -> Result<(), Error> { + /// Returns the number of bytes written. + pub async fn write_padding(&mut self, length: usize) -> Result { for _ in 0..length { self.writer.write_u8(0).await?; } - Ok(()) + Ok(length) } /// Flushes and returns the inner writer. From 6828e277b4557058ed64dad6d7d55e8c9e7c7f0e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jose=CC=81=20Duarte?= Date: Tue, 28 May 2024 08:25:32 +0100 Subject: [PATCH 43/63] fix(file-storage): go-car compliance --- storage/mater/src/unixfs/mod.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/storage/mater/src/unixfs/mod.rs b/storage/mater/src/unixfs/mod.rs index 69a1d89bf..9abbf333c 100644 --- a/storage/mater/src/unixfs/mod.rs +++ b/storage/mater/src/unixfs/mod.rs @@ -86,8 +86,8 @@ impl TreeNode { .into_iter() .map(|(cid, link)| PbLink { cid, - name: None, - // TODO(@jmg-duarte,27/05/2024): check this: it might not be compliant with go-car, due to being taken from iroh + // Having an empty name makes it compliant with go-car + name: Some("".to_string()), size: Some(link.encoded_data_length), }) .collect(); From f94ede6ea56de2ba213d5e2f6476fd998e8273f7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jose=CC=81=20Duarte?= Date: Tue, 28 May 2024 08:26:15 +0100 Subject: [PATCH 44/63] style: cargo fix --- storage/mater/src/lib.rs | 12 ++++-------- storage/mater/src/unixfs/mod.rs | 12 ++++++------ storage/mater/src/v1/mod.rs | 2 +- 3 files changed, 11 insertions(+), 15 deletions(-) diff --git a/storage/mater/src/lib.rs b/storage/mater/src/lib.rs index 0de13b234..97da49763 100644 --- a/storage/mater/src/lib.rs +++ b/storage/mater/src/lib.rs @@ -6,8 +6,7 @@ mod v1; mod v2; use std::{ - collections::{HashMap, HashSet, VecDeque}, - io::Cursor, + collections::{HashMap, HashSet}, }; use bytes::Bytes; @@ -94,18 +93,15 @@ pub enum Error { #[cfg(test)] mod tests { - use std::{ - collections::{BTreeMap, VecDeque}, - io::Cursor, - }; + use tokio::fs::File; use tokio_stream::StreamExt; use tokio_util::io::ReaderStream; use crate::{ - multicodec::SHA_256_CODE, unixfs::stream_balanced_tree, v2::test_utils::assert_buffer_eq, - Blockstore, CarV1Header, CarV2Header, CarV2Writer, Index, IndexEntry, + unixfs::stream_balanced_tree, v2::test_utils::assert_buffer_eq, + Blockstore, }; #[tokio::test] diff --git a/storage/mater/src/unixfs/mod.rs b/storage/mater/src/unixfs/mod.rs index 9abbf333c..326f7db50 100644 --- a/storage/mater/src/unixfs/mod.rs +++ b/storage/mater/src/unixfs/mod.rs @@ -3,22 +3,22 @@ mod unixfs_pb; -use std::{collections::VecDeque, thread::current, vec::Drain}; +use std::{collections::VecDeque}; use async_stream::try_stream; use bytes::Bytes; -use futures::{TryStream, TryStreamExt}; +use futures::{TryStreamExt}; use ipld_core::{ - cid::{Cid, CidGeneric}, + cid::{Cid}, codec::Codec, }; use ipld_dagpb::{DagPbCodec, PbLink, PbNode}; -use itertools::{IntoChunks, Itertools}; + use quick_protobuf::MessageWrite; use sha2::{Digest, Sha256}; -use tokio::{fs::File, io::AsyncRead, runtime::TryCurrentError}; + use tokio_stream::{Stream, StreamExt}; -use tokio_util::io::ReaderStream; + use crate::{ multicodec::{generate_multihash, DAG_PB_CODE, RAW_CODE}, diff --git a/storage/mater/src/v1/mod.rs b/storage/mater/src/v1/mod.rs index ad0c06cf6..8f5330f36 100644 --- a/storage/mater/src/v1/mod.rs +++ b/storage/mater/src/v1/mod.rs @@ -3,7 +3,7 @@ mod writer; use ipld_core::cid::Cid; use serde::{Deserialize, Serialize}; -use serde_ipld_dagcbor::codec::DagCborCodec; + pub use crate::v1::{reader::Reader, writer::Writer}; pub(crate) use crate::v1::{ From fe7816e2509a1661a07e098f84deac0640bfec68 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jose=CC=81=20Duarte?= Date: Tue, 28 May 2024 09:02:08 +0100 Subject: [PATCH 45/63] fix(file-storage): clean up --- storage/mater/src/blockstore.rs | 203 +++++++++++++++++++++++++++++ storage/mater/src/lib.rs | 223 ++++---------------------------- storage/mater/src/v2/mod.rs | 32 +---- storage/mater/src/v2/reader.rs | 4 +- storage/mater/src/v2/writer.rs | 8 +- 5 files changed, 237 insertions(+), 233 deletions(-) create mode 100644 storage/mater/src/blockstore.rs diff --git a/storage/mater/src/blockstore.rs b/storage/mater/src/blockstore.rs new file mode 100644 index 000000000..58c1e1e37 --- /dev/null +++ b/storage/mater/src/blockstore.rs @@ -0,0 +1,203 @@ +use std::{ + collections::{HashMap, HashSet}, + path::Path, +}; + +use bytes::Bytes; +use integer_encoding::VarInt; +use ipld_core::cid::Cid; +use sha2::{Digest, Sha256}; +use tokio::{fs::File, io::AsyncWrite}; +use tokio_stream::StreamExt; +use tokio_util::io::ReaderStream; + +use crate::{ + multicodec::SHA_256_CODE, unixfs::stream_balanced_tree, CarV1Header, CarV2Header, CarV2Writer, + Error, Index, IndexEntry, MultihashIndexSorted, SingleWidthIndex, +}; + +// https://github.com/ipfs/boxo/blob/f4fe8997dcbeb39b3a4842d8f08b34739bfd84a4/chunker/parse.go#L13 +const DEFAULT_CHUNK_SIZE: usize = 1024 * 256; +const DEFAULT_TREE_WIDTH: usize = 174; + +pub struct Blockstore { + root: Option, + blocks: Vec<(Cid, Bytes)>, + indexed: HashSet, + + chunk_size: usize, + tree_width: usize, +} + +impl Blockstore { + pub fn new() -> Self { + Self { + root: None, + blocks: vec![], + indexed: HashSet::new(), + chunk_size: DEFAULT_CHUNK_SIZE, + tree_width: DEFAULT_TREE_WIDTH, + } + } + + pub async fn from_file

(path: P) -> Result + where + P: AsRef, + { + let mut store = Blockstore::new(); + + let file = File::open(path).await?; + let chunks = ReaderStream::with_capacity(file, store.chunk_size); + + let tree = stream_balanced_tree(chunks, store.tree_width); + tokio::pin!(tree); + + while let Some(block) = tree.next().await { + let block = block.unwrap(); + store.push(block.cid, block.data, true); + // in this particular case, this is ok because we know it's the first and last + store.set_root(block.cid); + } + + Ok(store) + } + + pub async fn write(mut self, writer: W) -> Result + where + W: AsyncWrite + Unpin, + { + let mut position = 0; + + let mut writer = CarV2Writer::new(writer); + let header_v2 = self.header_v2(); + let car_v1_start = writer.write_header(&header_v2).await?; + position += car_v1_start; + let header_v1 = self.header_v1().ok_or(Error::EmptyRootsError)?; + position += writer.write_v1_header(&header_v1).await?; + + let mut offsets = HashMap::new(); + for (cid, block) in self.blocks.drain(..) { + if self.indexed.contains(&cid) { + offsets.insert(cid, position - car_v1_start); + } + position += writer.write_block(&cid, &block).await?; + } + + let index = Index::MultihashIndexSorted(MultihashIndexSorted::from_single_width( + SHA_256_CODE, + SingleWidthIndex::new( + Sha256::output_size() as u32, + offsets.len() as u64, + offsets + .into_iter() + .map(|(cid, offset)| { + IndexEntry::new(cid.hash().digest().to_vec(), offset as u64) + }) + .collect(), + ) + .into(), + )); + position += writer.write_index(&index).await?; + + Ok(position) + } + + fn header_v2(&self) -> CarV2Header { + let data_offset = CarV2Header::size() as u64; + let data_size: u64 = self + .blocks + .iter() + .map(|(cid, bytes)| { + let size = (cid.encoded_len() + bytes.len()) as u64; + let varint_size = size.required_space() as u64; + size + varint_size + }) + .sum(); + + // The size of the [`Header`] when encoded using [`DagCborCodec`]. + // + // The formula is: `overhead + 37 * roots.len()`. + // It is based on reversing the CBOR encoding, see an example: + // ```text + // A2 # map(2) + // 65 # text(5) + // 726F6F7473 # "roots" + // 81 # array(1) + // D8 2A # tag(42) + // 58 25 # bytes(37) + // 00015512206D623B17625E25CBDA46D17AC89C26B3DB63544701E2C0592626320DBEFD515B + // 67 # text(7) + // 76657273696F6E # "version" + // 01 # unsigned(1) + // ``` + // In this case we're always doing a single root, so we just use the fixed size: 58 + let header_v1_length = 58; + let header_v1_varint = header_v1_length.required_space() as u64; + + let car_v1_payload_length = header_v1_length + header_v1_varint + data_size; + + let index_offset = data_offset + car_v1_payload_length; // when there's no padding + CarV2Header::new(false, data_offset, car_v1_payload_length, index_offset) + } + + fn header_v1(&self) -> Option { + self.root.map(|root| CarV1Header::new(vec![root])) + } + + fn push(&mut self, cid: Cid, data: Bytes, index: bool) { + self.blocks.push((cid, data)); + if index { + self.indexed.insert(cid); + } + } + + fn set_root(&mut self, cid: Cid) { + self.root = Some(cid); + } + + fn n_blocks(&self) -> usize { + self.blocks.len() + } +} + +#[cfg(test)] +mod tests { + use crate::blockstore::Blockstore; + use crate::test_utils::assert_buffer_eq; + + #[tokio::test] + async fn file_roundtrip_lorem() { + let store = Blockstore::from_file("tests/fixtures/original/lorem.txt") + .await + .unwrap(); + + let mut result_buffer = vec![]; + store.write(&mut result_buffer).await.unwrap(); + + let car_contents = tokio::fs::read("tests/fixtures/car_v2/lorem.car") + .await + .unwrap(); + + assert_buffer_eq!(&result_buffer, &car_contents); + } + + #[tokio::test] + async fn file_roundtrip_spaceglenda() { + let store = Blockstore::from_file("tests/fixtures/original/spaceglenda.jpg") + .await + .unwrap(); + + assert_eq!(store.n_blocks(), 4); + + let mut result_buffer = vec![]; + store.write(&mut result_buffer).await.unwrap(); + + tokio::fs::write("test", &result_buffer).await.unwrap(); + + let car_contents = tokio::fs::read("tests/fixtures/car_v2/spaceglenda.car") + .await + .unwrap(); + + assert_buffer_eq!(&result_buffer, &car_contents); + } +} diff --git a/storage/mater/src/lib.rs b/storage/mater/src/lib.rs index 97da49763..6ae4f91a8 100644 --- a/storage/mater/src/lib.rs +++ b/storage/mater/src/lib.rs @@ -1,21 +1,11 @@ #![warn(unused_crate_dependencies)] +mod blockstore; mod multicodec; mod unixfs; mod v1; mod v2; -use std::{ - collections::{HashMap, HashSet}, -}; - -use bytes::Bytes; -use integer_encoding::VarInt; -use ipld_core::codec::Codec; -use multicodec::SHA_256_CODE; -use serde_ipld_dagcbor::codec::DagCborCodec; -use sha2::{Digest, Sha256}; -use tokio::io::AsyncWrite; pub use v1::{Header as CarV1Header, Reader as CarV1Reader, Writer as CarV1Writer}; pub use v2::{ Characteristics, Header as CarV2Header, Index, IndexEntry, IndexSorted, MultihashIndexSorted, @@ -91,195 +81,34 @@ pub enum Error { DagPbError(#[from] ipld_dagpb::Error), } +// NOTE(@jmg-duarte,23/05/2024): I'm looking for better alternatives to this #[cfg(test)] -mod tests { - - - use tokio::fs::File; - use tokio_stream::StreamExt; - use tokio_util::io::ReaderStream; - - use crate::{ - unixfs::stream_balanced_tree, v2::test_utils::assert_buffer_eq, - Blockstore, - }; - - #[tokio::test] - async fn file_roundtrip_lorem() { - let file = File::open("tests/fixtures/original/lorem.txt") - .await - .unwrap(); - let chunks = ReaderStream::with_capacity(file, 1024 * 256); - - let tree = stream_balanced_tree(chunks, 174); - tokio::pin!(tree); - - let mut store = Blockstore::new(); - while let Some(block) = tree.next().await { - let block = block.unwrap(); - store.push(block.cid, block.data, true); - // in this particular case, this is ok because we know it's the first and last - store.set_root(block.cid); - } - assert_eq!(store.n_blocks(), 1); - - let mut result_buffer = vec![]; - store.write(&mut result_buffer).await.unwrap(); - - let car_contents = tokio::fs::read("tests/fixtures/car_v2/lorem.car") - .await - .unwrap(); - - assert_buffer_eq(&result_buffer, &car_contents); - } +pub(crate) mod test_utils { - #[tokio::test] - async fn file_roundtrip_spaceglenda() { - let file = File::open("tests/fixtures/original/spaceglenda.jpg") - .await - .unwrap(); - let chunks = ReaderStream::with_capacity(file, 1024 * 256); - - let tree = stream_balanced_tree(chunks, 174); - tokio::pin!(tree); - - let mut store = Blockstore::new(); - while let Some(block) = tree.next().await { - let block = block.unwrap(); - store.push(block.cid, block.data, true); - if !block.links.is_empty() { - // in this particular case, this is ok because we know it's the first and last - store.set_root(block.cid); + /// Check if two given slices are equal. + /// + /// First checks if the two slices have the same size, + /// then checks each byte-pair. If the slices differ, + /// it will show an error message with the difference index + /// along with a window showing surrounding elements + /// (instead of spamming your terminal like `assert_eq!` does). + macro_rules! assert_buffer_eq { + ($left:expr, $right:expr $(,)?) => {{ + assert_eq!($left.len(), $right.len()); + for (i, (l, r)) in $left.iter().zip($right).enumerate() { + let before = i.checked_sub(5).unwrap_or(0); + let after = (i + 5).min($right.len()); + assert_eq!( + l, + r, + "difference at index {}\n left: {:02x?}\n right: {:02x?}", + i, + &$left[before..=after], + &$right[before..=after], + ) } - } - assert_eq!(store.n_blocks(), 4); - - let mut result_buffer = vec![]; - store.write(&mut result_buffer).await.unwrap(); - - tokio::fs::write("test", &result_buffer).await.unwrap(); - - let car_contents = tokio::fs::read("tests/fixtures/car_v2/spaceglenda.car") - .await - .unwrap(); - - assert_buffer_eq(&result_buffer, &car_contents); - } -} - -struct Blockstore { - root: Option, - blocks: Vec<(Cid, Bytes)>, - indexed: HashSet, -} - -impl Blockstore { - fn new() -> Self { - Self { - root: None, - blocks: vec![], - indexed: HashSet::new(), - } - } - - fn header_v2(&self) -> CarV2Header { - let data_offset = CarV2Header::size() as u64; - let data_size: u64 = self - .blocks - .iter() - .map(|(cid, bytes)| { - let size = (cid.encoded_len() + bytes.len()) as u64; - let varint_size = size.required_space() as u64; - size + varint_size - }) - .sum(); - - // The size of the [`Header`] when encoded using [`DagCborCodec`]. - // - // The formula is: `overhead + 37 * roots.len()`. - // It is based on reversing the CBOR encoding, see an example: - // ```text - // A2 # map(2) - // 65 # text(5) - // 726F6F7473 # "roots" - // 81 # array(1) - // D8 2A # tag(42) - // 58 25 # bytes(37) - // 00015512206D623B17625E25CBDA46D17AC89C26B3DB63544701E2C0592626320DBEFD515B - // 67 # text(7) - // 76657273696F6E # "version" - // 01 # unsigned(1) - // ``` - // In this case we're doing a single root, so we just use the fixed size: 58 - // let header_v1_length = 58; - let header_v1_length = DagCborCodec::encode_to_vec(&self.header_v1()) - .unwrap() - .len() as u64; - let header_v1_varint = header_v1_length.required_space() as u64; - - let car_v1_payload_length = header_v1_length + header_v1_varint + data_size; - - let index_offset = data_offset + car_v1_payload_length; // when there's no padding - CarV2Header::new(false, data_offset, car_v1_payload_length, index_offset) - } - - fn header_v1(&self) -> Option { - self.root.map(|root| CarV1Header::new(vec![root])) - } - - fn push(&mut self, cid: Cid, data: Bytes, index: bool) { - self.blocks.push((cid, data)); - if index { - self.indexed.insert(cid); - } + }}; } - fn set_root(&mut self, cid: Cid) { - self.root = Some(cid); - } - - fn n_blocks(&self) -> usize { - self.blocks.len() - } - - async fn write(mut self, writer: W) -> Result - where - W: AsyncWrite + Unpin, - { - let mut position = 0; - - let mut writer = CarV2Writer::new(writer); - let header_v2 = self.header_v2(); - let car_v1_start = writer.write_header(&header_v2).await?; - position += car_v1_start; - let header_v1 = self.header_v1().ok_or(Error::EmptyRootsError)?; - position += writer.write_v1_header(&header_v1).await?; - - let mut offsets = HashMap::new(); // 110 - for (cid, block) in self.blocks.drain(..) { - if self.indexed.contains(&cid) { - offsets.insert(cid, position - car_v1_start); - } - position += writer.write_block(&cid, &block).await?; - } - // 7712 - - let index = Index::MultihashIndexSorted(MultihashIndexSorted::from_single_width( - SHA_256_CODE, - SingleWidthIndex::new( - Sha256::output_size() as u32, - offsets.len() as u64, - offsets - .into_iter() - .map(|(cid, offset)| { - IndexEntry::new(cid.hash().digest().to_vec(), offset as u64) - }) - .collect(), - ) - .into(), - )); - position += writer.write_index(&index).await?; - - Ok(position) - } + pub(crate) use assert_buffer_eq; } diff --git a/storage/mater/src/v2/mod.rs b/storage/mater/src/v2/mod.rs index 7c8ca2e50..f9025d2cc 100644 --- a/storage/mater/src/v2/mod.rs +++ b/storage/mater/src/v2/mod.rs @@ -93,9 +93,9 @@ mod tests { use crate::{ multicodec::{generate_multihash, MultihashCode, RAW_CODE}, + test_utils::assert_buffer_eq, v2::{ index::{Index, IndexEntry, IndexSorted}, - test_utils::assert_buffer_eq, Header, Reader, Writer, }, }; @@ -162,7 +162,7 @@ mod tests { .await .unwrap(); - assert_buffer_eq(&expected_header, buffer.get_ref()); + assert_buffer_eq!(&expected_header, buffer.get_ref()); let mut reader = Reader::new(buffer); reader.read_pragma().await.unwrap(); @@ -177,31 +177,3 @@ mod tests { assert_eq!(read_index, written_index); } } - -// NOTE(@jmg-duarte,23/05/2024): I'm looking for better alternatives to this -#[cfg(test)] -pub(crate) mod test_utils { - /// Check if two given slices are equal. - /// - /// First checks if the two slices have the same size, - /// then checks each byte-pair. If the slices differ, - /// it will show an error message with the difference index - /// along with a window showing surrounding elements - /// (instead of spamming your terminal like `assert_eq!` does). - pub fn assert_buffer_eq(lhs: &[u8], rhs: &[u8]) { - // NOTE(@jmg-duarte,23/05/2024): Unsure if instead of a function, this should be a macro_rules! - assert_eq!(lhs.len(), rhs.len()); - for (i, (l, r)) in lhs.iter().zip(rhs).enumerate() { - let before = i.checked_sub(5).unwrap_or(0); - let after = (i + 5).min(rhs.len()); - assert_eq!( - l, - r, - "difference at index {}\n left: {:02x?}\n right: {:02x?}", - i, - &lhs[before..=after], - &rhs[before..=after], - ) - } - } -} diff --git a/storage/mater/src/v2/reader.rs b/storage/mater/src/v2/reader.rs index 66428b222..bcb4e6c0d 100644 --- a/storage/mater/src/v2/reader.rs +++ b/storage/mater/src/v2/reader.rs @@ -67,14 +67,14 @@ where /// /// See [`crate::v1::Reader`] for more information. pub async fn read_v1_header(&mut self) -> Result { - Ok(crate::v1::read_header(&mut self.reader).await?) + crate::v1::read_header(&mut self.reader).await } /// Read a [`Cid`] and data block. /// /// See [`crate::v1::Reader`] for more information. pub async fn read_block(&mut self) -> Result<(Cid, Vec), Error> { - Ok(crate::v1::read_block(&mut self.reader).await?) + crate::v1::read_block(&mut self.reader).await } /// Read an [`Index`]. diff --git a/storage/mater/src/v2/writer.rs b/storage/mater/src/v2/writer.rs index 0081ed210..191a9d562 100644 --- a/storage/mater/src/v2/writer.rs +++ b/storage/mater/src/v2/writer.rs @@ -27,7 +27,7 @@ where /// /// Returns the number of bytes written. pub async fn write_header(&mut self, header: &Header) -> Result { - self.writer.write(&PRAGMA).await?; + self.writer.write_all(&PRAGMA).await?; let mut buffer = [0; 40]; let mut handle = &mut buffer[..]; @@ -100,11 +100,11 @@ mod tests { use tokio_stream::StreamExt; use tokio_util::io::ReaderStream; + use crate::test_utils::assert_buffer_eq; use crate::{ multicodec::{generate_multihash, MultihashCode, DAG_PB_CODE, RAW_CODE}, v2::{ index::{IndexEntry, IndexSorted, SingleWidthIndex}, - test_utils::assert_buffer_eq, Header, Writer, }, }; @@ -219,7 +219,7 @@ mod tests { .await .unwrap(); - assert_buffer_eq(&expected_header, buf_writer.get_ref().get_ref()) + assert_buffer_eq!(&expected_header, buf_writer.get_ref().get_ref()) } // Byte to byte comparison to the spaceglenda.car file @@ -335,6 +335,6 @@ mod tests { .await .unwrap(); - assert_buffer_eq(&expected_header, buf_writer.get_ref().get_ref()); + assert_buffer_eq!(&expected_header, buf_writer.get_ref().get_ref()); } } From deb3bfd0f28f09ca765e41db0c260bc7580257ef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jose=CC=81=20Duarte?= Date: Tue, 28 May 2024 12:08:28 +0100 Subject: [PATCH 46/63] feat(file-storage): add blockstore --- Cargo.lock | 1 + Cargo.toml | 1 + storage/mater/Cargo.toml | 1 + storage/mater/src/blockstore.rs | 283 +++++++++++++++++++++++++------- storage/mater/src/lib.rs | 4 + storage/mater/src/v2/mod.rs | 8 +- 6 files changed, 236 insertions(+), 62 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 3814e5e35..7538059c0 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -5555,6 +5555,7 @@ dependencies = [ "bytes", "digest 0.10.7", "futures", + "indexmap 2.2.6", "integer-encoding 4.0.0", "ipld-core", "ipld-dagpb", diff --git a/Cargo.toml b/Cargo.toml index 01482d965..5b3f08ab9 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -66,6 +66,7 @@ tokio-stream = "0.1.15" ipld-dagpb = "0.2.1" itertools = "0.13.0" async-stream = "0.3.5" +indexmap = "2.2.6" # Local polka-storage-runtime = { path = "runtime" } diff --git a/storage/mater/Cargo.toml b/storage/mater/Cargo.toml index 115e66400..8a11c2cf8 100644 --- a/storage/mater/Cargo.toml +++ b/storage/mater/Cargo.toml @@ -29,6 +29,7 @@ ipld-dagpb.workspace = true itertools.workspace = true async-stream.workspace = true futures.workspace = true +indexmap.workspace = true [dev-dependencies] rand.workspace = true diff --git a/storage/mater/src/blockstore.rs b/storage/mater/src/blockstore.rs index 58c1e1e37..b2b2ec996 100644 --- a/storage/mater/src/blockstore.rs +++ b/storage/mater/src/blockstore.rs @@ -1,13 +1,14 @@ -use std::{ - collections::{HashMap, HashSet}, - path::Path, -}; +// NOTE(@jmg-duarte,28/05/2024): the blockstore can (and should) evolve to support other backends. +// At the time of writing, there is no need invest more time in it because the current PR(#25) is delayed enough. + +use std::collections::{HashMap, HashSet}; use bytes::Bytes; +use indexmap::IndexMap; use integer_encoding::VarInt; use ipld_core::cid::Cid; use sha2::{Digest, Sha256}; -use tokio::{fs::File, io::AsyncWrite}; +use tokio::io::{AsyncRead, AsyncWrite}; use tokio_stream::StreamExt; use tokio_util::io::ReaderStream; @@ -16,13 +17,29 @@ use crate::{ Error, Index, IndexEntry, MultihashIndexSorted, SingleWidthIndex, }; -// https://github.com/ipfs/boxo/blob/f4fe8997dcbeb39b3a4842d8f08b34739bfd84a4/chunker/parse.go#L13 -const DEFAULT_CHUNK_SIZE: usize = 1024 * 256; +/// The default block size, as defined in +/// [boxo](https://github.com/ipfs/boxo/blob/f4fe8997dcbeb39b3a4842d8f08b34739bfd84a4/chunker/parse.go#L13). +const DEFAULT_BLOCK_SIZE: usize = 1024 * 256; + +/// The default tree width, also called links per block, as defined in +/// [boxo](https://github.com/ipfs/boxo/blob/625ba769263c2beeec934836f54bbd6624db945a/ipld/unixfs/importer/helpers/helpers.go#L16-L30). const DEFAULT_TREE_WIDTH: usize = 174; +/// The [`Blockstore`] stores pairs of [`Cid`] and [`Bytes`] in memory. +/// +/// The store will chunk data blocks into `chunk_size` and "gather" nodes in groups of `tree_width` length. +/// You can visualize the underlying tree in , using the "Balanced DAG" layout. +/// +/// It is necessary to keep the blocks somewhere before writing them to a file since the CARv2 header +/// has data size, index offset and indexes fields, all these requiring information that only becomes +/// "available" after you process all the blocks. +/// +/// The store keeps track of ([`Cid`], [`Bytes`]) pairs, performing de-duplication based on the [`Cid`]. +/// +/// **Important note: currently, the blockstore only supports a single file!** pub struct Blockstore { root: Option, - blocks: Vec<(Cid, Bytes)>, + blocks: IndexMap, indexed: HashSet, chunk_size: usize, @@ -30,38 +47,54 @@ pub struct Blockstore { } impl Blockstore { + /// Construct a new [`Blockstore`], using the default parameters. pub fn new() -> Self { + Default::default() + } + + /// Construct a new [`Blockstore`], using custom parameters. + /// If set to `None`, the corresponding default value will be used. + pub fn with_parameters(chunk_size: Option, tree_width: Option) -> Self { + // NOTE(@jmg-duarte,28/05/2024): once the time comes, this method should probably be replaced with a builder Self { root: None, - blocks: vec![], + blocks: IndexMap::new(), indexed: HashSet::new(), - chunk_size: DEFAULT_CHUNK_SIZE, - tree_width: DEFAULT_TREE_WIDTH, + chunk_size: chunk_size.unwrap_or(DEFAULT_BLOCK_SIZE), + tree_width: tree_width.unwrap_or(DEFAULT_TREE_WIDTH), } } - pub async fn from_file

(path: P) -> Result + /// Fully read the contents of `reader` into the [`Blockstore`]. + pub async fn read(&mut self, reader: R) -> Result<(), Error> where - P: AsRef, + R: AsyncRead + Unpin + Send, { - let mut store = Blockstore::new(); + let chunks = ReaderStream::with_capacity(reader, self.chunk_size); - let file = File::open(path).await?; - let chunks = ReaderStream::with_capacity(file, store.chunk_size); - - let tree = stream_balanced_tree(chunks, store.tree_width); + // NOTE(@jmg-duarte,28/05/2024): being honest, I don't quite understand why the .peekable() needs to go after the pin + // my suspicion is that if you peek an item that is not Pin, it may move under your feet, by peeking a Pin item you + // know the item is not going to move and as such, it is ok + let tree = stream_balanced_tree(chunks, self.tree_width); tokio::pin!(tree); + let mut tree = tree.peekable(); while let Some(block) = tree.next().await { - let block = block.unwrap(); - store.push(block.cid, block.data, true); - // in this particular case, this is ok because we know it's the first and last - store.set_root(block.cid); + let block = block?; + self.insert(block.cid, block.data, true); + + // If the stream is exhausted, we know the current block is the root + if tree.peek().await.is_none() { + // The root should always be indexed, there's no official spec saying it should though, it just makes sense. + // So, if the insert line is changed, the root should be placed in the `indexed` structure here + self.root = Some(block.cid); + } } - Ok(store) + Ok(()) } + /// Write the contents of the [`Blockstore`] as CARv2 to a writer. pub async fn write(mut self, writer: W) -> Result where W: AsyncWrite + Unpin, @@ -70,9 +103,18 @@ impl Blockstore { let mut writer = CarV2Writer::new(writer); let header_v2 = self.header_v2(); + + // Writing the CARv1 starts where the CARv2 header ends + // this value is required for indexing, + // whose offset starts at the beginning of the CARv1 header let car_v1_start = writer.write_header(&header_v2).await?; position += car_v1_start; - let header_v1 = self.header_v1().ok_or(Error::EmptyRootsError)?; + + // CARv1 files are REQUIRED to have a root + let header_v1 = self + .root + .map(|root| CarV1Header::new(vec![root])) + .ok_or(Error::EmptyRootsError)?; position += writer.write_v1_header(&header_v1).await?; let mut offsets = HashMap::new(); @@ -83,25 +125,21 @@ impl Blockstore { position += writer.write_block(&cid, &block).await?; } + let count = offsets.len() as u64; + let entries = offsets + .into_iter() + .map(|(cid, offset)| IndexEntry::new(cid.hash().digest().to_vec(), offset as u64)) + .collect(); let index = Index::MultihashIndexSorted(MultihashIndexSorted::from_single_width( SHA_256_CODE, - SingleWidthIndex::new( - Sha256::output_size() as u32, - offsets.len() as u64, - offsets - .into_iter() - .map(|(cid, offset)| { - IndexEntry::new(cid.hash().digest().to_vec(), offset as u64) - }) - .collect(), - ) - .into(), + SingleWidthIndex::new(Sha256::output_size() as u32, count, entries).into(), )); position += writer.write_index(&index).await?; Ok(position) } + /// Get the [`CarV2Header`] that will be written out. fn header_v2(&self) -> CarV2Header { let data_offset = CarV2Header::size() as u64; let data_size: u64 = self @@ -131,45 +169,73 @@ impl Blockstore { // 01 # unsigned(1) // ``` // In this case we're always doing a single root, so we just use the fixed size: 58 + // + // Is this cheating? Yes. The alternative is to encode the CARv1 header twice. + // We can cache it, but for now, this should be better. let header_v1_length = 58; let header_v1_varint = header_v1_length.required_space() as u64; let car_v1_payload_length = header_v1_length + header_v1_varint + data_size; - let index_offset = data_offset + car_v1_payload_length; // when there's no padding - CarV2Header::new(false, data_offset, car_v1_payload_length, index_offset) - } + // If there is padding, this does not apply, however, the go-car tool doesn't seem to ever add padding + let index_offset = data_offset + car_v1_payload_length; - fn header_v1(&self) -> Option { - self.root.map(|root| CarV1Header::new(vec![root])) + // NOTE(@jmg-duarte,28/05/2024): the `fully_indexed` field is currently set to `false` as the + // go-car tool doesn't seem to ever set it, however, according to the written definition we have from the spec + // we're performing full indexing, as all blocks are inserted with `index: true`. + CarV2Header::new(false, data_offset, car_v1_payload_length, index_offset) } - fn push(&mut self, cid: Cid, data: Bytes, index: bool) { - self.blocks.push((cid, data)); - if index { - self.indexed.insert(cid); + /// Insert a new block into the [`Blockstore`]. + /// + /// If the [`Cid`] has been previously inserted, this function is a no-op. + fn insert(&mut self, cid: Cid, data: Bytes, index: bool) { + if !self.blocks.contains_key(&cid) { + self.blocks.insert_full(cid, data); + if index { + self.indexed.insert(cid); + } } } +} - fn set_root(&mut self, cid: Cid) { - self.root = Some(cid); - } - - fn n_blocks(&self) -> usize { - self.blocks.len() +impl Default for Blockstore { + fn default() -> Self { + Self { + root: None, + blocks: IndexMap::new(), + indexed: HashSet::new(), + chunk_size: DEFAULT_BLOCK_SIZE, + tree_width: DEFAULT_TREE_WIDTH, + } } } #[cfg(test)] mod tests { + use std::io::{Cursor, Read}; + use std::str::FromStr; + + use ipld_core::cid::{Cid, CidGeneric}; + use ipld_core::codec::Codec; + use ipld_dagpb::{DagPbCodec, PbNode}; + use sha2::{Digest, Sha256}; + use tokio::fs::File; + use tokio::io::AsyncWriteExt; + use crate::blockstore::Blockstore; + use crate::multicodec::{generate_multihash, RAW_CODE, SHA_256_CODE}; use crate::test_utils::assert_buffer_eq; + use crate::{CarV2Reader, Index, SingleWidthIndex}; #[tokio::test] - async fn file_roundtrip_lorem() { - let store = Blockstore::from_file("tests/fixtures/original/lorem.txt") + async fn byte_eq_lorem() { + let file = File::open("tests/fixtures/original/lorem.txt") .await .unwrap(); + let mut store = Blockstore::new(); + store.read(file).await.unwrap(); + assert_eq!(store.blocks.len(), 1); let mut result_buffer = vec![]; store.write(&mut result_buffer).await.unwrap(); @@ -182,22 +248,123 @@ mod tests { } #[tokio::test] - async fn file_roundtrip_spaceglenda() { - let store = Blockstore::from_file("tests/fixtures/original/spaceglenda.jpg") + async fn byte_eq_spaceglenda() { + let file = File::open("tests/fixtures/original/spaceglenda.jpg") .await .unwrap(); - - assert_eq!(store.n_blocks(), 4); + let mut store = Blockstore::new(); + store.read(file).await.unwrap(); + assert_eq!(store.blocks.len(), 4); let mut result_buffer = vec![]; store.write(&mut result_buffer).await.unwrap(); - tokio::fs::write("test", &result_buffer).await.unwrap(); - let car_contents = tokio::fs::read("tests/fixtures/car_v2/spaceglenda.car") .await .unwrap(); assert_buffer_eq!(&result_buffer, &car_contents); } + + #[tokio::test] + async fn dedup_lorem() { + let file = File::open("tests/fixtures/original/lorem_4096_dup.txt") + .await + .unwrap(); + let mut store = Blockstore::with_parameters(Some(1024), None); + store.read(file).await.unwrap(); + // We're expecting there to exist a single data block and a root + assert_eq!(store.blocks.len(), 2); + } + + // We can't fully validate this test using go-car because they don't offer parametrization + #[tokio::test] + async fn dedup_lorem_roundtrip() { + let file = File::open("tests/fixtures/original/lorem_4096_dup.txt") + .await + .unwrap(); + let mut store = Blockstore::with_parameters(Some(1024), None); + store.read(file).await.unwrap(); + // We're expecting there to exist a single data block and a root + assert_eq!(store.blocks.len(), 2); + + let mut result_buffer = vec![]; + store.write(&mut result_buffer).await.unwrap(); + + let mut f = File::create("test").await.unwrap(); + f.write_all(&result_buffer).await.unwrap(); + + let mut cursor = Cursor::new(result_buffer); + std::io::Seek::rewind(&mut cursor).unwrap(); + let mut car_reader = CarV2Reader::new(cursor); + + car_reader.read_pragma().await.unwrap(); + + let car_v2_header = car_reader.read_header().await.unwrap(); + assert_eq!(car_v2_header.data_offset, 51); + // Extracted with go-car and validated with an hex viewer + assert_eq!(car_v2_header.data_size, 1358); + assert_eq!(car_v2_header.index_offset, 51 + 1358); + + let car_v1_header = car_reader.read_v1_header().await.unwrap(); + assert_eq!(car_v1_header.roots.len(), 1); + + // Extracted with go-car + let root_cid = + Cid::from_str("bafybeiapxsorxw7yqywquebgmlz37nyjt44vxlskhx6wcgirkurojow7xu").unwrap(); + assert_eq!(car_v1_header.roots[0], root_cid); + + let original_1024 = tokio::fs::read("tests/fixtures/original/lorem_1024.txt") + .await + .unwrap(); + let (cid, data) = car_reader.read_block().await.unwrap(); + assert_buffer_eq!(&data, &original_1024); + let lorem_cid = Cid::new_v1(RAW_CODE, generate_multihash::(&original_1024)); + assert_eq!(cid, lorem_cid); + + let (cid, data) = car_reader.read_block().await.unwrap(); + let node: PbNode = DagPbCodec::decode_from_slice(&data).unwrap(); + assert_eq!(cid, root_cid); + + // There are 4 blocks of repeated 1024 bytes + assert_eq!(node.links.len(), 4); + + for pb_link in node.links { + assert_eq!(pb_link.cid, lorem_cid); + assert_eq!(pb_link.name, Some("".to_string())); + assert_eq!(pb_link.size, Some(1024)); + } + + let index = car_reader.read_index().await.unwrap(); + + match index { + Index::MultihashIndexSorted(index) => { + // There's only Sha256 + assert_eq!(index.0.len(), 1); + + let index_sorted = &index.0[&SHA_256_CODE]; + // There's only a single length + assert_eq!(index_sorted.0.len(), 1); + + let single_width_index = &index_sorted.0[0]; + assert_eq!(single_width_index.count, 2); + // Sha256 output size (32) + the offset size (8) + assert_eq!(single_width_index.width, Sha256::output_size() as u32 + 8); + assert_eq!(single_width_index.entries.len(), 2); + + // Sorting order is byte-wise, I extracted it manually + assert_eq!(single_width_index.entries[0].offset, 1121); + assert_eq!(single_width_index.entries[1].offset, 59); + assert_eq!( + single_width_index.entries[0].digest, + root_cid.hash().digest() + ); + assert_eq!( + single_width_index.entries[1].digest, + lorem_cid.hash().digest() + ); + } + Index::IndexSorted(_) => panic!("expected index to be MultihashIndexSorted"), + } + } } diff --git a/storage/mater/src/lib.rs b/storage/mater/src/lib.rs index 6ae4f91a8..4f8018848 100644 --- a/storage/mater/src/lib.rs +++ b/storage/mater/src/lib.rs @@ -6,6 +6,7 @@ mod unixfs; mod v1; mod v2; +pub use blockstore::Blockstore; pub use v1::{Header as CarV1Header, Reader as CarV1Reader, Writer as CarV1Writer}; pub use v2::{ Characteristics, Header as CarV2Header, Index, IndexEntry, IndexSorted, MultihashIndexSorted, @@ -85,6 +86,9 @@ pub enum Error { #[cfg(test)] pub(crate) mod test_utils { + // NOTE(@jmg-duarte,28/05/2024): I'm still not convinced that assert_buffer_eq should be a macro + // but I am also not convinced it should be a method. Please advise! + /// Check if two given slices are equal. /// /// First checks if the two slices have the same size, diff --git a/storage/mater/src/v2/mod.rs b/storage/mater/src/v2/mod.rs index f9025d2cc..4af371675 100644 --- a/storage/mater/src/v2/mod.rs +++ b/storage/mater/src/v2/mod.rs @@ -54,14 +54,14 @@ impl Default for Characteristics { #[derive(Debug, PartialEq, Eq)] pub struct Header { /// Describes certain features of the enclosed data. - characteristics: Characteristics, + pub characteristics: Characteristics, /// Byte-offset from the beginning of the CARv2 pragma to the first byte of the CARv1 data payload. - data_offset: u64, + pub data_offset: u64, /// Byte-length of the CARv1 data payload. - data_size: u64, + pub data_size: u64, /// Byte-offset from the beginning of the CARv2 pragma to the first byte of the index payload. /// This value may be 0 to indicate the absence of index data. - index_offset: u64, + pub index_offset: u64, } impl Header { From 09626d09c3f8e055109456d22212ed89a088cb93 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jose=CC=81=20Duarte?= Date: Tue, 28 May 2024 12:16:57 +0100 Subject: [PATCH 47/63] fix: remove unused parameter from `Block` and by consequence `Block` itself --- storage/mater/src/blockstore.rs | 12 ++++---- storage/mater/src/unixfs/mod.rs | 50 ++++++++++----------------------- 2 files changed, 21 insertions(+), 41 deletions(-) diff --git a/storage/mater/src/blockstore.rs b/storage/mater/src/blockstore.rs index b2b2ec996..10969161a 100644 --- a/storage/mater/src/blockstore.rs +++ b/storage/mater/src/blockstore.rs @@ -80,14 +80,14 @@ impl Blockstore { let mut tree = tree.peekable(); while let Some(block) = tree.next().await { - let block = block?; - self.insert(block.cid, block.data, true); + let (cid, bytes) = block?; + self.insert(cid, bytes, true); // If the stream is exhausted, we know the current block is the root if tree.peek().await.is_none() { // The root should always be indexed, there's no official spec saying it should though, it just makes sense. // So, if the insert line is changed, the root should be placed in the `indexed` structure here - self.root = Some(block.cid); + self.root = Some(cid); } } @@ -213,10 +213,10 @@ impl Default for Blockstore { #[cfg(test)] mod tests { - use std::io::{Cursor, Read}; + use std::io::Cursor; use std::str::FromStr; - use ipld_core::cid::{Cid, CidGeneric}; + use ipld_core::cid::Cid; use ipld_core::codec::Codec; use ipld_dagpb::{DagPbCodec, PbNode}; use sha2::{Digest, Sha256}; @@ -226,7 +226,7 @@ mod tests { use crate::blockstore::Blockstore; use crate::multicodec::{generate_multihash, RAW_CODE, SHA_256_CODE}; use crate::test_utils::assert_buffer_eq; - use crate::{CarV2Reader, Index, SingleWidthIndex}; + use crate::{CarV2Reader, Index}; #[tokio::test] async fn byte_eq_lorem() { diff --git a/storage/mater/src/unixfs/mod.rs b/storage/mater/src/unixfs/mod.rs index 326f7db50..376a32fb8 100644 --- a/storage/mater/src/unixfs/mod.rs +++ b/storage/mater/src/unixfs/mod.rs @@ -3,23 +3,19 @@ mod unixfs_pb; -use std::{collections::VecDeque}; +use std::collections::VecDeque; use async_stream::try_stream; use bytes::Bytes; -use futures::{TryStreamExt}; -use ipld_core::{ - cid::{Cid}, - codec::Codec, -}; +use futures::TryStreamExt; +use ipld_core::{cid::Cid, codec::Codec}; use ipld_dagpb::{DagPbCodec, PbLink, PbNode}; use quick_protobuf::MessageWrite; -use sha2::{Digest, Sha256}; +use sha2::Sha256; use tokio_stream::{Stream, StreamExt}; - use crate::{ multicodec::{generate_multihash, DAG_PB_CODE, RAW_CODE}, Error, @@ -40,19 +36,6 @@ impl LinkInfo { } } -#[derive(Debug)] -pub(crate) struct Block { - pub cid: Cid, - pub data: Bytes, - pub links: Vec, -} - -impl Block { - fn new(cid: Cid, data: Bytes, links: Vec) -> Self { - Self { cid, data, links } - } -} - #[derive(Debug)] enum TreeNode { Leaf(Bytes), @@ -60,7 +43,7 @@ enum TreeNode { } impl TreeNode { - fn encode(self) -> Result<(Block, LinkInfo), Error> { + fn encode(self) -> Result<((Cid, Bytes), LinkInfo), Error> { match self { TreeNode::Leaf(bytes) => { let data_length = bytes.len() as u64; @@ -68,7 +51,7 @@ impl TreeNode { // Storing the block as RAW as go-car does // TODO(@jmg-duarte,27/05/2024): find the go-car link let cid = Cid::new_v1(RAW_CODE, multihash); - let block = Block::new(cid, bytes, vec![]); + let block = (cid, bytes); // The data is raw, so the raw length == encoded length let link_info = LinkInfo::new(data_length, data_length); Ok((block, link_info)) @@ -113,11 +96,10 @@ impl TreeNode { encoded_length += outer.len() as u64; Ok(( - Block::new( - cid, - outer.into(), - pb_node.links.iter().map(|link| link.cid).collect(), - ), + // NOTE(@jmg-duarte,28/05/2024): In the original implementation + // they have a `Block` structure that contains the child links, + // we're not currently using them and as such I didn't include them + (cid, outer.into()), LinkInfo { raw_data_length: pb_node_data_length, encoded_data_length: encoded_length, @@ -275,7 +257,7 @@ impl TreeNode { pub(crate) fn stream_balanced_tree( input: I, width: usize, -) -> impl Stream> +) -> impl Stream> where I: Stream> + Send, { @@ -292,7 +274,7 @@ where tokio::pin!(input); while let Some(data) = input.next().await { - let (block, link_info) = data?; + let (block @ (cid, _), link_info) = data?; let tree_height = tree.len(); // Check if the leaf node is full @@ -317,8 +299,7 @@ where // it's most likely less performant (I didn't measure) // due to the different nature of the approaches (batch vs iterator) let links = std::mem::replace(&mut tree[level], Vec::with_capacity(width)); - let (block, link_info) = TreeNode::Stem(links).encode()?; - let cid = block.cid; // Cid: Copy + let (block @ (cid, _), link_info) = TreeNode::Stem(links).encode()?; yield block; tree[level + 1].push((cid, link_info)); @@ -329,7 +310,7 @@ where // If the tree level is empty, we can push, // if the tree level was not empty, the `for` took care of it - tree[0].push((block.cid, link_info)); + tree[0].push((cid, link_info)); yield block; } @@ -342,8 +323,7 @@ where // Once `input` is exhausted, we need to perform cleanup of any leftovers, // to do so, we start by popping levels from the front and building stems over them. while let Some(links) = tree.pop_front() { - let (block, link_info) = TreeNode::Stem(links).encode()?; // TODO - let cid = block.cid; + let (block @ (cid, _), link_info) = TreeNode::Stem(links).encode()?; // TODO yield block; // If there's still a level in the front, it means the stem we just built will have a parent From 55639dcfe82e619270fa9a4c6101f4d78e6d88d0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jose=CC=81=20Duarte?= Date: Tue, 28 May 2024 14:18:32 +0100 Subject: [PATCH 48/63] tests: add stream_balanced_tree tests --- storage/mater/src/unixfs/mod.rs | 272 +++++++++++++++++++++++++++++++- 1 file changed, 267 insertions(+), 5 deletions(-) diff --git a/storage/mater/src/unixfs/mod.rs b/storage/mater/src/unixfs/mod.rs index 376a32fb8..d73bbd4a2 100644 --- a/storage/mater/src/unixfs/mod.rs +++ b/storage/mater/src/unixfs/mod.rs @@ -21,7 +21,7 @@ use crate::{ Error, }; -#[derive(Debug)] +#[derive(Debug, Clone, Copy)] pub(crate) struct LinkInfo { raw_data_length: u64, encoded_data_length: u64, @@ -57,10 +57,6 @@ impl TreeNode { Ok((block, link_info)) } TreeNode::Stem(links) => { - // TODO(@jmg-duarte,27/05/2024): the last issue is somewhere around here - // there are extra bytes and hashes being calculated on the wrong content - // presumably the extra bytes - let mut encoded_length: u64 = links.iter().map(|(_, l)| l.encoded_data_length).sum(); let blocksizes: Vec<_> = links.iter().map(|(_, l)| l.raw_data_length).collect(); @@ -336,3 +332,269 @@ where } } } + +#[cfg(test)] +mod tests { + //! Tests were taken from [beetle][beetle] too, I did modify them to suit our needs. + //! In certain places, I made them check for byte equality as its way simpler + //! and there's enough tests around the repo to ensure that if the underlying + //! bytes are equal, the expected block sizes are as well. + //! + //! We also didn't write our own chunker, relying on [`tokio_util::io::ReadStream`] instead. + //! + //! [beetle]: https://github.com/n0-computer/beetle/blob/3e137cb2bc18e1d458c3f72d5e817b03d9537d5d/iroh-unixfs/src/balanced_tree.rs#L234-L507 + + use super::*; + use bytes::BytesMut; + use futures::StreamExt; + + fn test_chunk_stream(num_chunks: usize) -> impl Stream> { + futures::stream::iter((0..num_chunks).map(|n| Ok(n.to_be_bytes().to_vec().into()))) + } + + async fn build_expect_tree(num_chunks: usize, degree: usize) -> Vec> { + let chunks = test_chunk_stream(num_chunks); + tokio::pin!(chunks); + let mut tree = vec![vec![]]; + let mut links = vec![vec![]]; + + if num_chunks / degree == 0 { + let chunk = chunks.next().await.unwrap().unwrap(); + let leaf = TreeNode::Leaf(chunk); + let (block, _) = leaf.encode().unwrap(); + tree[0].push(block); + return tree; + } + + while let Some(chunk) = chunks.next().await { + let chunk = chunk.unwrap(); + let leaf = TreeNode::Leaf(chunk); + let (block @ (cid, _), link_info) = leaf.encode().unwrap(); + links[0].push((cid, link_info)); + tree[0].push(block); + } + + while tree.last().unwrap().len() > 1 { + let prev_layer = links.last().unwrap(); + let count = prev_layer.len() / degree; + let mut tree_layer = Vec::with_capacity(count); + let mut links_layer = Vec::with_capacity(count); + for links in prev_layer.chunks(degree) { + let stem = TreeNode::Stem(links.to_vec()); + let (block @ (cid, _), link_info) = stem.encode().unwrap(); + links_layer.push((cid, link_info)); + tree_layer.push(block); + } + tree.push(tree_layer); + links.push(links_layer); + } + tree + } + + async fn build_expect_vec_from_tree( + tree: Vec>, + num_chunks: usize, + degree: usize, + ) -> Vec<(Cid, Bytes)> { + let mut out = vec![]; + + if num_chunks == 1 { + out.push(tree[0][0].clone()); + return out; + } + + let mut counts = vec![0; tree.len()]; + + for leaf in tree[0].iter() { + out.push(leaf.clone()); + counts[0] += 1; + let mut push = counts[0] % degree == 0; + for (num_layer, count) in counts.iter_mut().enumerate() { + if num_layer == 0 { + continue; + } + if !push { + break; + } + out.push(tree[num_layer][*count].clone()); + *count += 1; + if *count % degree != 0 { + push = false; + } + } + } + + for (num_layer, count) in counts.into_iter().enumerate() { + if num_layer == 0 { + continue; + } + let layer = tree[num_layer].clone(); + for node in layer.into_iter().skip(count) { + out.push(node); + } + } + + out + } + + async fn build_expect(num_chunks: usize, degree: usize) -> Vec<(Cid, Bytes)> { + let tree = build_expect_tree(num_chunks, degree).await; + println!("{tree:?}"); + build_expect_vec_from_tree(tree, num_chunks, degree).await + } + + fn make_leaf(data: usize) -> ((Cid, Bytes), LinkInfo) { + TreeNode::Leaf(BytesMut::from(&data.to_be_bytes()[..]).freeze()) + .encode() + .unwrap() + } + + fn make_stem(links: Vec<(Cid, LinkInfo)>) -> ((Cid, Bytes), LinkInfo) { + TreeNode::Stem(links).encode().unwrap() + } + + #[tokio::test] + async fn test_build_expect() { + // manually build tree made of 7 chunks (11 total nodes) + let (leaf_0, len_0) = make_leaf(0); + let (leaf_1, len_1) = make_leaf(1); + let (leaf_2, len_2) = make_leaf(2); + let (stem_0, stem_len_0) = make_stem(vec![ + (leaf_0.0, len_0), + (leaf_1.0, len_1), + (leaf_2.0, len_2), + ]); + let (leaf_3, len_3) = make_leaf(3); + let (leaf_4, len_4) = make_leaf(4); + let (leaf_5, len_5) = make_leaf(5); + let (stem_1, stem_len_1) = make_stem(vec![ + (leaf_3.0, len_3), + (leaf_4.0, len_4), + (leaf_5.0, len_5), + ]); + let (leaf_6, len_6) = make_leaf(6); + let (stem_2, stem_len_2) = make_stem(vec![(leaf_6.0, len_6)]); + let (root, _root_len) = make_stem(vec![ + (stem_0.0, stem_len_0), + (stem_1.0, stem_len_1), + (stem_2.0, stem_len_2), + ]); + + let expect_tree = vec![ + vec![ + leaf_0.clone(), + leaf_1.clone(), + leaf_2.clone(), + leaf_3.clone(), + leaf_4.clone(), + leaf_5.clone(), + leaf_6.clone(), + ], + vec![stem_0.clone(), stem_1.clone(), stem_2.clone()], + vec![root.clone()], + ]; + let got_tree = build_expect_tree(7, 3).await; + assert_eq!(expect_tree, got_tree); + + let expect_vec = vec![ + leaf_0, leaf_1, leaf_2, stem_0, leaf_3, leaf_4, leaf_5, stem_1, leaf_6, stem_2, root, + ]; + let got_vec = build_expect_vec_from_tree(got_tree, 7, 3).await; + assert_eq!(expect_vec, got_vec); + } + + async fn ensure_equal( + expect: Vec<(Cid, Bytes)>, + got: impl Stream>, + ) { + let mut i = 0; + tokio::pin!(got); + while let Some(node) = got.next().await { + let (expect_cid, expect_bytes) = expect + .get(i) + .expect("too many nodes in balanced tree stream") + .clone(); + let (got_cid, got_bytes) = node.expect("unexpected error in balanced tree stream"); + println!("node index {i}"); + assert_eq!(expect_cid, got_cid); + assert_eq!(expect_bytes, got_bytes); + i += 1; + } + if expect.len() != i { + panic!( + "expected at {} nodes of the stream, got {}", + expect.len(), + i + ); + } + } + + #[tokio::test] + async fn balanced_tree_test_leaf() { + let num_chunks = 1; + let expect = build_expect(num_chunks, 3).await; + let got = stream_balanced_tree(test_chunk_stream(1), 3); + tokio::pin!(got); + ensure_equal(expect, got).await; + } + + #[tokio::test] + async fn balanced_tree_test_height_one() { + let num_chunks = 3; + let degrees = 3; + let expect = build_expect(num_chunks, degrees).await; + let got = stream_balanced_tree(test_chunk_stream(num_chunks), degrees); + tokio::pin!(got); + ensure_equal(expect, got).await; + } + + #[tokio::test] + async fn balanced_tree_test_height_two_full() { + let degrees = 3; + let num_chunks = 9; + let expect = build_expect(num_chunks, degrees).await; + let got = stream_balanced_tree(test_chunk_stream(num_chunks), degrees); + tokio::pin!(got); + ensure_equal(expect, got).await; + } + + #[tokio::test] + async fn balanced_tree_test_height_two_not_full() { + let degrees = 3; + let num_chunks = 10; + let expect = build_expect(num_chunks, degrees).await; + let got = stream_balanced_tree(test_chunk_stream(num_chunks), degrees); + tokio::pin!(got); + ensure_equal(expect, got).await; + } + + #[tokio::test] + async fn balanced_tree_test_height_three() { + let num_chunks = 125; + let degrees = 5; + let expect = build_expect(num_chunks, degrees).await; + let got = stream_balanced_tree(test_chunk_stream(num_chunks), degrees); + tokio::pin!(got); + ensure_equal(expect, got).await; + } + + #[tokio::test] + async fn balanced_tree_test_large() { + let num_chunks = 780; + let degrees = 11; + let expect = build_expect(num_chunks, degrees).await; + let got = stream_balanced_tree(test_chunk_stream(num_chunks), degrees); + tokio::pin!(got); + ensure_equal(expect, got).await; + } + + #[tokio::test] + async fn balanced_tree_test_lar() { + let num_chunks = 7; + let degrees = 2; + let expect = build_expect(num_chunks, degrees).await; + let got = stream_balanced_tree(test_chunk_stream(num_chunks), degrees); + tokio::pin!(got); + ensure_equal(expect, got).await; + } +} From adde8c0b7d9b85d32bc2ddf193dc1534383ca811 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jose=CC=81=20Duarte?= Date: Tue, 28 May 2024 15:44:15 +0100 Subject: [PATCH 49/63] fix: clean up, docs and cruft like that --- .rustfmt.toml | 2 +- Cargo.lock | 10 ---------- Cargo.toml | 37 ++++++++++++++++------------------- storage/mater/Cargo.toml | 17 ++++++++-------- storage/mater/src/lib.rs | 24 +++++++++++++++++++++-- storage/mater/src/v1/mod.rs | 1 - storage/mater/src/v2/index.rs | 1 + storage/mater/src/v2/mod.rs | 4 ++++ 8 files changed, 53 insertions(+), 43 deletions(-) diff --git a/.rustfmt.toml b/.rustfmt.toml index 842ead843..a4527b7fc 100644 --- a/.rustfmt.toml +++ b/.rustfmt.toml @@ -1,5 +1,5 @@ edition = "2021" group_imports = "StdExternalCrate" -imports_granularity = "Crate" hard_tabs = false +imports_granularity = "Crate" tab_spaces = 4 diff --git a/Cargo.lock b/Cargo.lock index 7538059c0..d9602e9f9 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4548,15 +4548,6 @@ dependencies = [ "either", ] -[[package]] -name = "itertools" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186" -dependencies = [ - "either", -] - [[package]] name = "itoa" version = "1.0.11" @@ -5559,7 +5550,6 @@ dependencies = [ "integer-encoding 4.0.0", "ipld-core", "ipld-dagpb", - "itertools 0.13.0", "quick-protobuf", "rand 0.8.5", "serde", diff --git a/Cargo.toml b/Cargo.toml index 5b3f08ab9..b65caf78e 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -6,8 +6,8 @@ license-file = "LICENSE" repository = "https://github.com/eigerco/polka-storage" [workspace] -resolver = "2" members = ["node", "runtime", "storage/mater"] +resolver = "2" # FIXME(#@jmg-duarte,#7,14/5/24): remove the patch once something >1.11.0 is released [patch.'https://github.com/paritytech/litep2p'] @@ -28,45 +28,44 @@ panic = 'abort' # Use abort on panic to reduce binary size substrate-build-script-utils = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-v1.11.0" } substrate-wasm-builder = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-v1.11.0" } +async-stream = "0.3.5" +bitflags = "2.5.0" +byteorder = "1.5.0" bytes = "1.6.0" clap = { version = "4.5.3" } codec = { package = "parity-scale-codec", version = "3.0.0", default-features = false } color-print = "0.3.4" +digest = "0.10.7" futures = "0.3.28" hex-literal = { version = "0.4.1" } +indexmap = "2.2.6" +integer-encoding = "4.0.0" +ipld-core = "0.4.1" +ipld-dagpb = "0.2.1" +itertools = "0.13.0" jsonrpsee = { version = "0.22" } log = { version = "0.4.21", default-features = false } polkavm = "0.9.3" polkavm-derive = "0.9.1" polkavm-linker = "0.9.2" +quick-protobuf = "0.8.1" quote = { version = "1.0.33" } +rand = "0.8.5" scale-info = { version = "2.11.1", default-features = false } serde = { version = "1.0.197", default-features = false } serde-big-array = { version = "0.3.2" } serde_derive = { version = "1.0.117" } +serde_ipld_dagcbor = "0.6.1" serde_json = { version = "1.0.114", default-features = false } serde_yaml = { version = "0.9" } +sha2 = "0.10.8" smallvec = "1.11.0" syn = { version = "2.0.53" } thiserror = { version = "1.0.48" } -tracing-subscriber = { version = "0.3.18" } tokio = "1.37.0" -quick-protobuf = "0.8.1" -ipfs-unixfs = "0.2.0" -serde_ipld_dagcbor = "0.6.1" -ipld-core = "0.4.1" -rand = "0.8.5" -sha2 = "0.10.8" -digest = "0.10.7" -integer-encoding = "4.0.0" -byteorder = "1.5.0" -bitflags = "2.5.0" -tokio-util = "0.7.11" tokio-stream = "0.1.15" -ipld-dagpb = "0.2.1" -itertools = "0.13.0" -async-stream = "0.3.5" -indexmap = "2.2.6" +tokio-util = "0.7.11" +tracing-subscriber = { version = "0.3.18" } # Local polka-storage-runtime = { path = "runtime" } @@ -110,9 +109,7 @@ substrate-prometheus-endpoint = { git = "https://github.com/paritytech/polkadot- # Polkadot pallet-xcm = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-v1.11.0", default-features = false } -polkadot-cli = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-v1.11.0", features = [ - "rococo-native", -] } +polkadot-cli = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-v1.11.0", features = ["rococo-native"] } polkadot-parachain-primitives = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-v1.11.0", default-features = false } polkadot-primitives = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-v1.11.0" } polkadot-runtime-common = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-v1.11.0", default-features = false } diff --git a/storage/mater/Cargo.toml b/storage/mater/Cargo.toml index 8a11c2cf8..dfbf03678 100644 --- a/storage/mater/Cargo.toml +++ b/storage/mater/Cargo.toml @@ -11,25 +11,24 @@ version = "0.1.0" [dependencies] # TODO(@jmg-duarte,15/05/2024): reduce the required features +async-stream.workspace = true bitflags.workspace = true byteorder = { workspace = true, features = ["i128"] } +bytes.workspace = true +digest.workspace = true +futures.workspace = true +indexmap.workspace = true integer-encoding = { workspace = true, features = ["tokio_async"] } ipld-core = { workspace = true, features = ["serde"] } +ipld-dagpb.workspace = true +quick-protobuf.workspace = true serde = { workspace = true, features = ["derive"] } serde_ipld_dagcbor.workspace = true +sha2.workspace = true thiserror.workspace = true tokio = { workspace = true, features = ["full"] } -quick-protobuf.workspace = true tokio-stream.workspace = true tokio-util = { workspace = true, features = ["io"] } -bytes.workspace = true -sha2.workspace = true -digest.workspace = true -ipld-dagpb.workspace = true -itertools.workspace = true -async-stream.workspace = true -futures.workspace = true -indexmap.workspace = true [dev-dependencies] rand.workspace = true diff --git a/storage/mater/src/lib.rs b/storage/mater/src/lib.rs index 4f8018848..4ac928e6d 100644 --- a/storage/mater/src/lib.rs +++ b/storage/mater/src/lib.rs @@ -1,4 +1,14 @@ +//! A library to handle CAR files. +//! Both version 1 and version 2 are supported. +//! +//! You can make use of the lower-level utilities such as [`CarV2Reader`] to read a CARv2 file, +//! though these utilies were designed to be used in higher-level abstractions, like the [`Blockstore`]. + #![warn(unused_crate_dependencies)] +#![warn(missing_docs)] +#![deny(rustdoc::broken_intra_doc_links)] +#![deny(rustdoc::private_intra_doc_links)] +#![deny(unsafe_code)] mod blockstore; mod multicodec; @@ -24,7 +34,12 @@ pub enum Error { /// For example, when reading CARv1 files, the only valid version is 1, /// otherwise, this error should be returned. #[error("expected version {expected}, but received version {received} instead")] - VersionMismatchError { expected: u8, received: u8 }, + VersionMismatchError { + /// Expected version (usually 1 or 2) + expected: u8, + /// Received version + received: u8, + }, /// According to the [specification](https://ipld.io/specs/transport/car/carv1/#constraints) /// CAR files MUST have **one or more** [`Cid`] roots. @@ -38,7 +53,12 @@ pub enum Error { /// Digest does not match the expected length. #[error("digest has length {received}, instead of {expected}")] - NonMatchingDigestError { expected: usize, received: usize }, + NonMatchingDigestError { + /// Expected digest length + expected: usize, + /// Received digest length + received: usize, + }, /// Cannot know width or count from an empty vector. #[error("cannot create an index out of an empty `Vec`")] diff --git a/storage/mater/src/v1/mod.rs b/storage/mater/src/v1/mod.rs index 8f5330f36..89abbc168 100644 --- a/storage/mater/src/v1/mod.rs +++ b/storage/mater/src/v1/mod.rs @@ -4,7 +4,6 @@ mod writer; use ipld_core::cid::Cid; use serde::{Deserialize, Serialize}; - pub use crate::v1::{reader::Reader, writer::Writer}; pub(crate) use crate::v1::{ reader::{read_block, read_header}, diff --git a/storage/mater/src/v2/index.rs b/storage/mater/src/v2/index.rs index 1d70fbcd1..000d82458 100644 --- a/storage/mater/src/v2/index.rs +++ b/storage/mater/src/v2/index.rs @@ -136,6 +136,7 @@ pub struct MultihashIndexSorted( ); impl MultihashIndexSorted { + /// Create a [`MultihashIndexSorted`] from a [digest code](https://github.com/multiformats/multicodec/blob/c954a787dc6a17d099653e5f90d26fbd177d2074/table.csv) and an [`IndexSorted`]. pub fn from_single_width(code: u64, index: IndexSorted) -> Self { let mut map = BTreeMap::new(); map.insert(code, index); diff --git a/storage/mater/src/v2/mod.rs b/storage/mater/src/v2/mod.rs index 4af371675..444d8b3fc 100644 --- a/storage/mater/src/v2/mod.rs +++ b/storage/mater/src/v2/mod.rs @@ -22,7 +22,11 @@ bitflags! { /// Characteristics of the enclosed data. #[derive(Debug, PartialEq, Eq)] pub struct Characteristics: u128 { + /// No characteristics were set. const EMPTY = 0; + /// When this characteristic is set (1), the index includes + /// a complete catalog of the section CIDs regardless of + /// whether they are identity CIDs or not. const FULLY_INDEXED = 1 << 127; } } From 3ff72e48463d3a4ffc00a92746d470abe63b16c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jose=CC=81=20Duarte?= Date: Tue, 28 May 2024 16:01:24 +0100 Subject: [PATCH 50/63] chore: reduce tokio features --- storage/mater/Cargo.toml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/storage/mater/Cargo.toml b/storage/mater/Cargo.toml index dfbf03678..90d9cf1a1 100644 --- a/storage/mater/Cargo.toml +++ b/storage/mater/Cargo.toml @@ -7,8 +7,6 @@ name = "mater" # name WIP repository.workspace = true version = "0.1.0" -# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html - [dependencies] # TODO(@jmg-duarte,15/05/2024): reduce the required features async-stream.workspace = true @@ -26,7 +24,7 @@ serde = { workspace = true, features = ["derive"] } serde_ipld_dagcbor.workspace = true sha2.workspace = true thiserror.workspace = true -tokio = { workspace = true, features = ["full"] } +tokio = { workspace = true, features = ["fs", "macros", "rt"] } tokio-stream.workspace = true tokio-util = { workspace = true, features = ["io"] } From 8a9197d90eb31551833fedbace8148c4eda26c4b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jose=CC=81=20Duarte?= Date: Tue, 28 May 2024 16:01:34 +0100 Subject: [PATCH 51/63] fix: remove debug dump --- storage/mater/src/blockstore.rs | 3 --- 1 file changed, 3 deletions(-) diff --git a/storage/mater/src/blockstore.rs b/storage/mater/src/blockstore.rs index 10969161a..1dec248ca 100644 --- a/storage/mater/src/blockstore.rs +++ b/storage/mater/src/blockstore.rs @@ -291,9 +291,6 @@ mod tests { let mut result_buffer = vec![]; store.write(&mut result_buffer).await.unwrap(); - let mut f = File::create("test").await.unwrap(); - f.write_all(&result_buffer).await.unwrap(); - let mut cursor = Cursor::new(result_buffer); std::io::Seek::rewind(&mut cursor).unwrap(); let mut car_reader = CarV2Reader::new(cursor); From 5c2a5a2b29b46b725e440aebf4ea972ee68ddf52 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jose=CC=81=20Duarte?= Date: Tue, 28 May 2024 16:12:14 +0100 Subject: [PATCH 52/63] tests: shorten the spaceglenda test --- storage/mater/src/v2/writer.rs | 58 +++++++--------------------------- 1 file changed, 11 insertions(+), 47 deletions(-) diff --git a/storage/mater/src/v2/writer.rs b/storage/mater/src/v2/writer.rs index 191a9d562..3622e7a6c 100644 --- a/storage/mater/src/v2/writer.rs +++ b/storage/mater/src/v2/writer.rs @@ -91,7 +91,6 @@ mod tests { use std::{collections::BTreeMap, io::Cursor}; use ipld_core::cid::Cid; - use ipld_dagpb::{PbLink, PbNode}; use sha2::Sha256; use tokio::{ fs::File, @@ -100,9 +99,10 @@ mod tests { use tokio_stream::StreamExt; use tokio_util::io::ReaderStream; - use crate::test_utils::assert_buffer_eq; use crate::{ - multicodec::{generate_multihash, MultihashCode, DAG_PB_CODE, RAW_CODE}, + multicodec::{generate_multihash, MultihashCode, RAW_CODE}, + test_utils::assert_buffer_eq, + unixfs::stream_balanced_tree, v2::{ index::{IndexEntry, IndexSorted, SingleWidthIndex}, Header, Writer, @@ -234,40 +234,11 @@ mod tests { .await .unwrap(); // https://github.com/ipfs/boxo/blob/f4fe8997dcbeb39b3a4842d8f08b34739bfd84a4/chunker/parse.go#L13 - let mut file_chunker = ReaderStream::with_capacity(file, 1024 * 256); - let mut file_blocks = vec![]; - while let Some(chunk) = file_chunker.next().await { - let chunk = chunk.unwrap(); - let multihash = generate_multihash::(&chunk); - let cid = Cid::new_v1(RAW_CODE, multihash); - file_blocks.push((cid, chunk)); - } - - let links = file_blocks - .iter() - .map(|(cid, block)| PbLink { - cid: cid.clone(), - // NOTE(@jmg-duarte,23/05/2024): actually how go-car does it... kinda weird if you ask me - name: Some("".to_string()), - size: Some(block.len() as u64), - }) - .collect(); - let node = PbNode { links, data: None }; - let mut node_bytes = node.into_bytes(); - // This is very much cheating but the contents here are the UnixFS wrapper for the node - // TODO(@jmg-duarte,22/05/2024): replace this when we implement unixfs - std::io::Write::write_all( - &mut node_bytes, - &vec![ - 0x0A, 0x12, 0x08, 0x02, 0x18, 0xCE, 0xF5, 0x27, 0x20, 0x80, 0x80, 0x10, 0x20, 0x80, - 0x80, 0x10, 0x20, 0xCE, 0xF5, 0x07, - ], - ) - .unwrap(); - let root_cid = { - let multihash = generate_multihash::(&node_bytes); - Cid::new_v1(DAG_PB_CODE, multihash) - }; + let file_chunker = ReaderStream::with_capacity(file, 1024 * 256); + let nodes = stream_balanced_tree(file_chunker, 11) + .collect::, _>>() + .await + .unwrap(); // To simplify testing, the values were extracted using `car inspect` writer @@ -283,12 +254,12 @@ mod tests { }; writer - .write_v1_header(&crate::v1::Header::new(vec![root_cid])) + .write_v1_header(&crate::v1::Header::new(vec![nodes.last().unwrap().0])) .await .unwrap(); let mut offsets = vec![]; - for (cid, block) in &file_blocks { + for (cid, block) in &nodes { // write the blocks, saving their positions for the index offsets.push({ let inner = writer.get_inner_mut(); @@ -296,12 +267,6 @@ mod tests { }); writer.write_block(cid, block).await.unwrap(); } - // Write the DAG-PB link unifying everything - offsets.push({ - let inner = writer.get_inner_mut(); - inner.stream_position().await.unwrap() - start_car_v1 - }); - writer.write_block(&root_cid, &node_bytes).await.unwrap(); let inner = writer.get_inner_mut(); let written = inner.stream_position().await.unwrap(); @@ -312,9 +277,8 @@ mod tests { Sha256::CODE, IndexSorted::from( SingleWidthIndex::try_from( - file_blocks + nodes .iter() - .chain(std::iter::once(&(root_cid, node_bytes.into()))) .zip(&offsets) .map(|((cid, _), offset)| { IndexEntry::new(cid.hash().digest().to_vec(), *offset) From 333c9ecfea386618f6c14108808aceb3ce6023c7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jose=CC=81=20Duarte?= Date: Tue, 28 May 2024 16:12:32 +0100 Subject: [PATCH 53/63] style: cargo fmt --- storage/mater/src/blockstore.rs | 17 ++++++++--------- storage/mater/src/lib.rs | 5 ++--- storage/mater/src/unixfs/mod.rs | 5 ++--- storage/mater/src/v1/mod.rs | 6 ++++-- 4 files changed, 16 insertions(+), 17 deletions(-) diff --git a/storage/mater/src/blockstore.rs b/storage/mater/src/blockstore.rs index 1dec248ca..f55037d02 100644 --- a/storage/mater/src/blockstore.rs +++ b/storage/mater/src/blockstore.rs @@ -213,20 +213,19 @@ impl Default for Blockstore { #[cfg(test)] mod tests { - use std::io::Cursor; - use std::str::FromStr; + use std::{io::Cursor, str::FromStr}; - use ipld_core::cid::Cid; - use ipld_core::codec::Codec; + use ipld_core::{cid::Cid, codec::Codec}; use ipld_dagpb::{DagPbCodec, PbNode}; use sha2::{Digest, Sha256}; use tokio::fs::File; - use tokio::io::AsyncWriteExt; - use crate::blockstore::Blockstore; - use crate::multicodec::{generate_multihash, RAW_CODE, SHA_256_CODE}; - use crate::test_utils::assert_buffer_eq; - use crate::{CarV2Reader, Index}; + use crate::{ + blockstore::Blockstore, + multicodec::{generate_multihash, RAW_CODE, SHA_256_CODE}, + test_utils::assert_buffer_eq, + CarV2Reader, Index, + }; #[tokio::test] async fn byte_eq_lorem() { diff --git a/storage/mater/src/lib.rs b/storage/mater/src/lib.rs index 4ac928e6d..8dbab6d25 100644 --- a/storage/mater/src/lib.rs +++ b/storage/mater/src/lib.rs @@ -17,15 +17,14 @@ mod v1; mod v2; pub use blockstore::Blockstore; +// We need to expose this because `read_block` returns `(Cid, Vec)`. +pub use ipld_core::cid::Cid; pub use v1::{Header as CarV1Header, Reader as CarV1Reader, Writer as CarV1Writer}; pub use v2::{ Characteristics, Header as CarV2Header, Index, IndexEntry, IndexSorted, MultihashIndexSorted, Reader as CarV2Reader, SingleWidthIndex, Writer as CarV2Writer, }; -// We need to expose this because `read_block` returns `(Cid, Vec)`. -pub use ipld_core::cid::Cid; - /// CAR handling errors. #[derive(Debug, thiserror::Error)] pub enum Error { diff --git a/storage/mater/src/unixfs/mod.rs b/storage/mater/src/unixfs/mod.rs index d73bbd4a2..78d8bead2 100644 --- a/storage/mater/src/unixfs/mod.rs +++ b/storage/mater/src/unixfs/mod.rs @@ -10,10 +10,8 @@ use bytes::Bytes; use futures::TryStreamExt; use ipld_core::{cid::Cid, codec::Codec}; use ipld_dagpb::{DagPbCodec, PbLink, PbNode}; - use quick_protobuf::MessageWrite; use sha2::Sha256; - use tokio_stream::{Stream, StreamExt}; use crate::{ @@ -344,10 +342,11 @@ mod tests { //! //! [beetle]: https://github.com/n0-computer/beetle/blob/3e137cb2bc18e1d458c3f72d5e817b03d9537d5d/iroh-unixfs/src/balanced_tree.rs#L234-L507 - use super::*; use bytes::BytesMut; use futures::StreamExt; + use super::*; + fn test_chunk_stream(num_chunks: usize) -> impl Stream> { futures::stream::iter((0..num_chunks).map(|n| Ok(n.to_be_bytes().to_vec().into()))) } diff --git a/storage/mater/src/v1/mod.rs b/storage/mater/src/v1/mod.rs index 89abbc168..0e235a83f 100644 --- a/storage/mater/src/v1/mod.rs +++ b/storage/mater/src/v1/mod.rs @@ -41,8 +41,10 @@ mod tests { use sha2::Sha256; use tokio::io::BufWriter; - use crate::multicodec::{generate_multihash, RAW_CODE}; - use crate::v1::{Header, Reader, Writer}; + use crate::{ + multicodec::{generate_multihash, RAW_CODE}, + v1::{Header, Reader, Writer}, + }; impl Writer>> { pub fn test_writer() -> Self { From e1d744b5f77379b13b53da1806b609de52be969a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jose=CC=81=20Duarte?= Date: Wed, 29 May 2024 15:40:36 +0100 Subject: [PATCH 54/63] fix: handle TODOs --- storage/mater/Cargo.toml | 1 - storage/mater/src/unixfs/mod.rs | 4 ++-- storage/mater/src/v1/mod.rs | 4 ---- storage/mater/src/v1/reader.rs | 2 -- storage/mater/src/v2/reader.rs | 2 +- 5 files changed, 3 insertions(+), 10 deletions(-) diff --git a/storage/mater/Cargo.toml b/storage/mater/Cargo.toml index 90d9cf1a1..741244cd0 100644 --- a/storage/mater/Cargo.toml +++ b/storage/mater/Cargo.toml @@ -8,7 +8,6 @@ repository.workspace = true version = "0.1.0" [dependencies] -# TODO(@jmg-duarte,15/05/2024): reduce the required features async-stream.workspace = true bitflags.workspace = true byteorder = { workspace = true, features = ["i128"] } diff --git a/storage/mater/src/unixfs/mod.rs b/storage/mater/src/unixfs/mod.rs index 78d8bead2..963701c02 100644 --- a/storage/mater/src/unixfs/mod.rs +++ b/storage/mater/src/unixfs/mod.rs @@ -47,7 +47,7 @@ impl TreeNode { let data_length = bytes.len() as u64; let multihash = generate_multihash::(&bytes); // Storing the block as RAW as go-car does - // TODO(@jmg-duarte,27/05/2024): find the go-car link + // https://github.com/ipfs/go-unixfsnode/blob/c41f115d06cff90e0cbc634da5073b4c1447af09/data/builder/file.go#L54-L63 let cid = Cid::new_v1(RAW_CODE, multihash); let block = (cid, bytes); // The data is raw, so the raw length == encoded length @@ -317,7 +317,7 @@ where // Once `input` is exhausted, we need to perform cleanup of any leftovers, // to do so, we start by popping levels from the front and building stems over them. while let Some(links) = tree.pop_front() { - let (block @ (cid, _), link_info) = TreeNode::Stem(links).encode()?; // TODO + let (block @ (cid, _), link_info) = TreeNode::Stem(links).encode()?; yield block; // If there's still a level in the front, it means the stem we just built will have a parent diff --git a/storage/mater/src/v1/mod.rs b/storage/mater/src/v1/mod.rs index 0e235a83f..a5ab66157 100644 --- a/storage/mater/src/v1/mod.rs +++ b/storage/mater/src/v1/mod.rs @@ -83,8 +83,4 @@ mod tests { assert_eq!(read_cid, root_cid); assert_eq!(read_block, file_contents); } - - // TODO(@jmg-duarte,23/05/2024): add roundtrip test for spaceglenda - // adding it manually right now is too much work due to the missing stores - // and other niceties } diff --git a/storage/mater/src/v1/reader.rs b/storage/mater/src/v1/reader.rs index 57b7e33e0..cffa3ff96 100644 --- a/storage/mater/src/v1/reader.rs +++ b/storage/mater/src/v1/reader.rs @@ -173,6 +173,4 @@ mod tests { }) )); } - - // TODO(@jmg-duarte,19/05/2024): add more tests } diff --git a/storage/mater/src/v2/reader.rs b/storage/mater/src/v2/reader.rs index bcb4e6c0d..642f4db5a 100644 --- a/storage/mater/src/v2/reader.rs +++ b/storage/mater/src/v2/reader.rs @@ -286,7 +286,7 @@ mod tests { ); loop { - // TODO(@jmg-duarte,22/05/2024): review this + // NOTE(@jmg-duarte,22/05/2024): review this match reader.read_block().await { Ok((_, _)) => { // Kinda hacky, but better than doing a seek later on From 6fc7fdc60ad4898da99dc1ea80073681683fdf0c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jose=CC=81=20Duarte?= Date: Fri, 31 May 2024 09:23:20 +0100 Subject: [PATCH 55/63] docs: improve mater/README.md * overview of crate structure * note on `unixfs.proto` --- storage/mater/README.md | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/storage/mater/README.md b/storage/mater/README.md index 18f47c6ee..588d4cfe7 100644 --- a/storage/mater/README.md +++ b/storage/mater/README.md @@ -9,3 +9,21 @@ This library is based on [beetle](https://github.com/n0-computer/beetle). CARv1 specification: https://ipld.io/specs/transport/car/carv1/ CARv2 specification: https://ipld.io/specs/transport/car/carv2/ UnixFS specification: https://github.com/ipfs/specs/blob/e4e5754ad4a4bfbb2ebe63f4c27631f573703de0/UNIXFS.md + +## Developing + +### Overview + +This crate is composed of three main modules: + +- `unixfs/` — which covers the main UnixFS abstractions +- `v1/` — which contains the CARv1 implementation and respective abstractions +- `v2/` — which contains the CARv2 implementation and respective abstractions + +### Further notes + +The [`unixfs_pb.rs`](src/unixfs/unixfs_pb.rs) was automatically generated using +[`pb-rs`](https://github.com/tafia/quick-protobuf/tree/master/pb-rs). +The file was generated and checked-in instead of making `pb-rs` part of the build +because the definition file ([`unixfs.proto`](src/unixfs/unixfs.proto)) does not +change frequently, hence, there is no need to add complexity to the build process. From b1acae18c13be1afb70fced1d006a70dfbb653ab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jose=CC=81=20Duarte?= Date: Fri, 31 May 2024 09:29:56 +0100 Subject: [PATCH 56/63] fix: replace magic constant --- storage/mater/src/blockstore.rs | 14 ++++++++++---- storage/mater/src/v2/mod.rs | 4 +--- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/storage/mater/src/blockstore.rs b/storage/mater/src/blockstore.rs index f55037d02..e3ab694e8 100644 --- a/storage/mater/src/blockstore.rs +++ b/storage/mater/src/blockstore.rs @@ -141,7 +141,7 @@ impl Blockstore { /// Get the [`CarV2Header`] that will be written out. fn header_v2(&self) -> CarV2Header { - let data_offset = CarV2Header::size() as u64; + let data_offset = CarV2Header::SIZE as u64; let data_size: u64 = self .blocks .iter() @@ -224,7 +224,7 @@ mod tests { blockstore::Blockstore, multicodec::{generate_multihash, RAW_CODE, SHA_256_CODE}, test_utils::assert_buffer_eq, - CarV2Reader, Index, + CarV2Header, CarV2Reader, Index, }; #[tokio::test] @@ -297,10 +297,16 @@ mod tests { car_reader.read_pragma().await.unwrap(); let car_v2_header = car_reader.read_header().await.unwrap(); - assert_eq!(car_v2_header.data_offset, 51); + assert_eq!(car_v2_header.data_offset, CarV2Header::SIZE as u64); // Extracted with go-car and validated with an hex viewer + // to extract the values, run the following commands: + // $ car inspect + // The dump is necessary because go-car does not support parametrization assert_eq!(car_v2_header.data_size, 1358); - assert_eq!(car_v2_header.index_offset, 51 + 1358); + assert_eq!( + car_v2_header.index_offset, + (CarV2Header::SIZE as u64) + 1358 + ); let car_v1_header = car_reader.read_v1_header().await.unwrap(); assert_eq!(car_v1_header.roots.len(), 1); diff --git a/storage/mater/src/v2/mod.rs b/storage/mater/src/v2/mod.rs index 444d8b3fc..38dc6df7f 100644 --- a/storage/mater/src/v2/mod.rs +++ b/storage/mater/src/v2/mod.rs @@ -82,9 +82,7 @@ impl Header { /// The [`Header`] size in bytes (includes the pragma). /// /// As defined in the [specification](https://ipld.io/specs/transport/car/carv2/#header). - pub const fn size() -> usize { - PRAGMA.len() + 40 - } + pub const SIZE: usize = PRAGMA.len() + 40; } #[cfg(test)] From 9752818a71eed428d1824399e9eabbef2d91b193 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jose=CC=81=20Duarte?= Date: Fri, 31 May 2024 09:33:18 +0100 Subject: [PATCH 57/63] fix: const a cheating value --- storage/mater/src/blockstore.rs | 48 ++++++++++++++++----------------- 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/storage/mater/src/blockstore.rs b/storage/mater/src/blockstore.rs index e3ab694e8..04090028e 100644 --- a/storage/mater/src/blockstore.rs +++ b/storage/mater/src/blockstore.rs @@ -47,6 +47,28 @@ pub struct Blockstore { } impl Blockstore { + /// The size of the [`Header`] when encoded using [`DagCborCodec`]. + /// + /// The formula is: `overhead + 37 * roots.len()`. + /// It is based on reversing the CBOR encoding, see an example: + /// ```text + /// A2 # map(2) + /// 65 # text(5) + /// 726F6F7473 # "roots" + /// 81 # array(1) + /// D8 2A # tag(42) + /// 58 25 # bytes(37) + /// 00015512206D623B17625E25CBDA46D17AC89C26B3DB63544701E2C0592626320DBEFD515B + /// 67 # text(7) + /// 76657273696F6E # "version" + /// 01 # unsigned(1) + /// ``` + /// In this case we're always doing a single root, so we just use the fixed size: 58 + /// + /// Is this cheating? Yes. The alternative is to encode the CARv1 header twice. + /// We can cache it, but for now, this should be better. + const V1_HEADER_OVERHEAD: u64 = 58; + /// Construct a new [`Blockstore`], using the default parameters. pub fn new() -> Self { Default::default() @@ -152,30 +174,8 @@ impl Blockstore { }) .sum(); - // The size of the [`Header`] when encoded using [`DagCborCodec`]. - // - // The formula is: `overhead + 37 * roots.len()`. - // It is based on reversing the CBOR encoding, see an example: - // ```text - // A2 # map(2) - // 65 # text(5) - // 726F6F7473 # "roots" - // 81 # array(1) - // D8 2A # tag(42) - // 58 25 # bytes(37) - // 00015512206D623B17625E25CBDA46D17AC89C26B3DB63544701E2C0592626320DBEFD515B - // 67 # text(7) - // 76657273696F6E # "version" - // 01 # unsigned(1) - // ``` - // In this case we're always doing a single root, so we just use the fixed size: 58 - // - // Is this cheating? Yes. The alternative is to encode the CARv1 header twice. - // We can cache it, but for now, this should be better. - let header_v1_length = 58; - let header_v1_varint = header_v1_length.required_space() as u64; - - let car_v1_payload_length = header_v1_length + header_v1_varint + data_size; + let header_v1_varint = Self::V1_HEADER_OVERHEAD.required_space() as u64; + let car_v1_payload_length = Self::V1_HEADER_OVERHEAD + header_v1_varint + data_size; // If there is padding, this does not apply, however, the go-car tool doesn't seem to ever add padding let index_offset = data_offset + car_v1_payload_length; From ec180a92d0413108722b090c22dfae101d80695d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jose=CC=81=20Duarte?= Date: Fri, 31 May 2024 09:50:42 +0100 Subject: [PATCH 58/63] docs: better Blockstore::read --- storage/mater/src/blockstore.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/storage/mater/src/blockstore.rs b/storage/mater/src/blockstore.rs index 04090028e..98d527d48 100644 --- a/storage/mater/src/blockstore.rs +++ b/storage/mater/src/blockstore.rs @@ -87,7 +87,8 @@ impl Blockstore { } } - /// Fully read the contents of `reader` into the [`Blockstore`]. + /// Fully read the contents of an arbitrary `reader` into the [`Blockstore`], + /// converting the contents into a CARv2 file. pub async fn read(&mut self, reader: R) -> Result<(), Error> where R: AsyncRead + Unpin + Send, From 5fc51d6f55b86fe72fc598a9ce45ad52e1837ddb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jose=CC=81=20Duarte?= Date: Fri, 31 May 2024 09:50:55 +0100 Subject: [PATCH 59/63] docs: better explanation on the pin + peekable combo --- storage/mater/src/blockstore.rs | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/storage/mater/src/blockstore.rs b/storage/mater/src/blockstore.rs index 98d527d48..c5c7ba35f 100644 --- a/storage/mater/src/blockstore.rs +++ b/storage/mater/src/blockstore.rs @@ -95,9 +95,15 @@ impl Blockstore { { let chunks = ReaderStream::with_capacity(reader, self.chunk_size); - // NOTE(@jmg-duarte,28/05/2024): being honest, I don't quite understand why the .peekable() needs to go after the pin - // my suspicion is that if you peek an item that is not Pin, it may move under your feet, by peeking a Pin item you - // know the item is not going to move and as such, it is ok + // The `stream -> pin -> peekable` combo instead of `stream -> peekable -> pin` feels weird + // but it has to do with two things: + // - The fact that the stream can be self-referential: + // https://users.rust-lang.org/t/why-is-pin-mut-needed-for-iteration-of-async-stream/51107 + // - Using a tokio_stream::Peekable instead of futures::Peekable, they differ on who is required to be pinned + // - tokio_stream::Peekable::peek(&mut self) + // https://github.com/tokio-rs/tokio/blob/14c17fc09656a30230177b600bacceb9db33e942/tokio-stream/src/stream_ext/peekable.rs#L26-L37 + // - futures::Peekable::peek(self: Pin<&mut Self>) + // https://github.com/rust-lang/futures-rs/blob/c507ff833728e2979cf5519fc931ea97308ec876/futures-util/src/stream/stream/peek.rs#L38-L40 let tree = stream_balanced_tree(chunks, self.tree_width); tokio::pin!(tree); let mut tree = tree.peekable(); From 1de6fdef8829be46d6aa40a5ebbc7c9616f94a2a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jose=CC=81=20Duarte?= Date: Fri, 31 May 2024 09:51:54 +0100 Subject: [PATCH 60/63] chore: remove discussed notes We can always convert the macro back to a function and use `#[track_caller]` --- storage/mater/src/lib.rs | 5 ----- 1 file changed, 5 deletions(-) diff --git a/storage/mater/src/lib.rs b/storage/mater/src/lib.rs index 8dbab6d25..ae3e793f7 100644 --- a/storage/mater/src/lib.rs +++ b/storage/mater/src/lib.rs @@ -101,13 +101,8 @@ pub enum Error { DagPbError(#[from] ipld_dagpb::Error), } -// NOTE(@jmg-duarte,23/05/2024): I'm looking for better alternatives to this #[cfg(test)] pub(crate) mod test_utils { - - // NOTE(@jmg-duarte,28/05/2024): I'm still not convinced that assert_buffer_eq should be a macro - // but I am also not convinced it should be a method. Please advise! - /// Check if two given slices are equal. /// /// First checks if the two slices have the same size, From dcec85f916319fdf4171824f02fc00aba60d8109 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jose=CC=81=20Duarte?= Date: Fri, 31 May 2024 09:55:17 +0100 Subject: [PATCH 61/63] docs: improve blockstore description --- storage/mater/src/blockstore.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/storage/mater/src/blockstore.rs b/storage/mater/src/blockstore.rs index c5c7ba35f..024235ab5 100644 --- a/storage/mater/src/blockstore.rs +++ b/storage/mater/src/blockstore.rs @@ -27,7 +27,7 @@ const DEFAULT_TREE_WIDTH: usize = 174; /// The [`Blockstore`] stores pairs of [`Cid`] and [`Bytes`] in memory. /// -/// The store will chunk data blocks into `chunk_size` and "gather" nodes in groups of `tree_width` length. +/// The store will chunk data blocks into `chunk_size` and "gather" nodes in groups with at most `tree_width` children. /// You can visualize the underlying tree in , using the "Balanced DAG" layout. /// /// It is necessary to keep the blocks somewhere before writing them to a file since the CARv2 header From e43ff4bdf7cacb430274261db778c17913c58d45 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jose=CC=81=20Duarte?= Date: Fri, 31 May 2024 10:23:04 +0100 Subject: [PATCH 62/63] chore: Cargo.lock update --- Cargo.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index d9602e9f9..fd184694e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -13453,9 +13453,9 @@ checksum = "3369f5ac52d5eb6ab48c6b4ffdc8efbcad6b89c765749064ba298f2c68a16a76" [[package]] name = "thiserror" -version = "1.0.60" +version = "1.0.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "579e9083ca58dd9dcf91a9923bb9054071b9ebbd800b342194c9feb0ee89fc18" +checksum = "c546c80d6be4bc6a00c0f01730c08df82eaa7a7a61f11d656526506112cc1709" dependencies = [ "thiserror-impl", ] @@ -13482,9 +13482,9 @@ dependencies = [ [[package]] name = "thiserror-impl" -version = "1.0.60" +version = "1.0.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2470041c06ec3ac1ab38d0356a6119054dedaea53e12fbefc0de730a1c08524" +checksum = "46c3384250002a6d5af4d114f2845d37b57521033f30d5c3f46c4d70e1197533" dependencies = [ "proc-macro2", "quote", From 9d7f362b5435e1edd282e1c48bddcd3b2676e88f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jose=CC=81=20Duarte?= Date: Fri, 31 May 2024 12:36:47 +0100 Subject: [PATCH 63/63] style: format Cargo --- Cargo.toml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 2e276c1ad..6ec3cc234 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -113,9 +113,7 @@ substrate-prometheus-endpoint = { git = "https://github.com/paritytech/polkadot- # Polkadot pallet-xcm = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-v1.11.0", default-features = false } -polkadot-cli = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-v1.11.0", features = [ - "rococo-native", -] } +polkadot-cli = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-v1.11.0", features = ["rococo-native"] } polkadot-parachain-primitives = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-v1.11.0", default-features = false } polkadot-primitives = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-v1.11.0" } polkadot-runtime-common = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-v1.11.0", default-features = false }

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%0AtVG4_f)u3WThEUn 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