Skip to content

Commit

Permalink
Update readme
Browse files Browse the repository at this point in the history
  • Loading branch information
rklaehn committed Apr 19, 2024
1 parent 93fc932 commit db5a0e0
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 12 deletions.
30 changes: 20 additions & 10 deletions bao-http-tool/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,26 @@

## Usage

To test this, run a http dev server that supports range requests in your iroh data dir.
Create an outboard for an asset that is available via http:

The outboard data must be *without* length prefix.
```
❯ bao-http-tool generate --data http://127.0.0.1:3003/370e2b3002be3b38b120f7b3be53da4cf646810e26f8f4a5018247c8188af5b2.data --block-size-log 4
Computing outboard for http://127.0.0.1:3003/370e2b3002be3b38b120f7b3be53da4cf646810e26f8f4a5018247c8188af5b2.data of size 100000000 with block log 4, size 16384
Computed hash: 370e2b3002be3b38b120f7b3be53da4cf646810e26f8f4a5018247c8188af5b2
Writing outboard to 370e2b3002be3b38b120f7b3be53da4cf646810e26f8f4a5018247c8188af5b2.obao4
```

Validate a range of the file:

```
RUST_LOG=debug \
cargo run -- \
--hash 370e2b3002be3b38b120f7b3be53da4cf646810e26f8f4a5018247c8188af5b2 \
--block-size-log 4
--url http://127.0.0.1:3003/370e2b3002be3b38b120f7b3be53da4cf646810e26f8f4a5018247c8188af5b2.data
--outboard http://127.0.0.1:3003/370e2b3002be3b38b120f7b3be53da4cf646810e26f8f4a5018247c8188af5b2.obao4
--range 0..10000000
```
validate --hash 370e2b3002be3b38b120f7b3be53da4cf646810e26f8f4a5018247c8188af5b2 --block-size-log 4 --data http://127.0.0.1:3003/370e2b3002be3b38b120f7b3be53da4cf646810e26f8f4a5018247c8188af5b2.data --outboard 370e2b3002be3b38b120f7b3be53da4cf646810e26f8f4a5018247c8188af5b2.obao4 --range 0..10000000
Size: 100000000
Outboard: 390592
Hash: 370e2b3002be3b38b120f7b3be53da4cf646810e26f8f4a5018247c8188af5b2
Block size: BlockSize(4)
Byte ranges: RangeSet{0..10000000}
Chunk ranges: RangeSet{0..9766}
confirmed that range RangeSet{0..10000000} of http://127.0.0.1:3003/370e2b3002be3b38b120f7b3be53da4cf646810e26f8f4a5018247c8188af5b2.data matches 370e2b3002be3b38b120f7b3be53da4cf646810e26f8f4a5018247c8188af5b2
```

Note that for validation both data **and** outboard can be available via http.
7 changes: 5 additions & 2 deletions bao-http-tool/src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,11 @@ async fn generate(args: GenerateArgs) -> anyhow::Result<()> {
let size = data.size().await?;
let tree = BaoTree::new(size, block_size);
println!(
"Computing outboard for {} of size {} with block size {}",
args.data, size, block_size
"Computing outboard for {} of size {} with block log {}, size {}",
args.data,
size,
block_size.chunk_log(),
block_size.bytes()
);
let hash =
bao_tree::io::fsm::outboard_post_order(Cursor::new(data), tree, &mut outboard).await?;
Expand Down

0 comments on commit db5a0e0

Please sign in to comment.