Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 4 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,7 @@

This repository is a collection of crates related to a SwiftSync node implementation. Some crates will be SwiftSync-specific, while others may have broader use cases.

`accumulator`: A hash-based SwiftSync accumulator used to add and subtrack elements from a set.
`network`: Tools to find Bitcoin peers
- `accumulator`: A hash-based SwiftSync accumulator used to add and subtrack elements from a set.
- `hintfile`: Generate a SwiftSync hintfile as the role of a server.
- `node`: Perform fast IBD using a SwiftSync hints file.
- `network`: Tools to find Bitcoin peers.
3 changes: 3 additions & 0 deletions hintfile/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# SwiftSync hint file

This crate is capable of generating a `.hints` file to use as a SwiftSync client. You will need to have Bitcoin Core synced to a recent block or either mainnet or Signet.
29 changes: 29 additions & 0 deletions node/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# SwiftSync fast IBD

This binary implements a SwiftSync client that downloads blocks in parallel from multiple peers, references a hint file, and updates an accumulator. Once the client has reached the stop hash specified in the hint file, the accumulator state is reported as verified or false. For more information, read the [SwiftSync specification](https://gist.github.com/RubenSomsen/a61a37d14182ccd78760e477c78133cd).

You will need a `.hints` file locally to run this binary. See the `hintfile` create in this workspace to generate one from Bitcoin Core.

To start fast IBD:
```
cargo run --bin ibd --release -- <args>
```


```
Arguments:
--hintfile The path to your `bitcoin.hints` file that will be
used for IBD
--blocks-dir Directory where you would like to store the bitcoin
blocks
--network The bitcoin network to operate on. Options are `
bitcoin` or `signet`
--ping-timeout The time a peer has to respond to a `ping` message.
Pings are sent aggressively throughout IBD to find
slow peers.
--tcp-timeout The maximum time to establish a connection
--read-timeout The maximum time to read from a TCP stream until the
connection is killed.
--write-timeout The maximum time to write to a TCP stream until the
connection is killed.
```