Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement full-duplex secret connection #938

Merged
merged 29 commits into from
Aug 4, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
02a94f6
Implement thread-safe cloning of a secret connection
thanethomson Jul 23, 2021
31b8cad
Expand documentation for SecretConnection on threading considerations
thanethomson Jul 23, 2021
94c43c0
Extract peer construction into its own method
thanethomson Jul 23, 2021
8e7f694
Add test for cloned SecretConnection
thanethomson Jul 23, 2021
1409f91
Add more messages to test
thanethomson Jul 23, 2021
b161ba5
Expand comment for clarity
thanethomson Jul 23, 2021
b48fb23
Add .changelog entry
thanethomson Jul 23, 2021
0a90dc3
Restore half-duplex operations
thanethomson Jul 26, 2021
3c45316
Extract encrypt/decrypt fns as independent methods
thanethomson Jul 26, 2021
1d2f658
Remove unnecessary trait bounds
thanethomson Jul 26, 2021
4c60492
Extract send/receive state
thanethomson Jul 26, 2021
929eeb5
Extract read/write functionality as standalone methods
thanethomson Jul 26, 2021
465d627
Add logic to facilitate splitting SecretConnection into its sending a…
thanethomson Jul 26, 2021
34a7de5
Restore split SecretConnection test using new semantics
thanethomson Jul 26, 2021
b220c8f
Update changelog entry
thanethomson Jul 26, 2021
ba3b16c
Update docs for `SecretConnection`
thanethomson Jul 26, 2021
e65aeee
Condense error reporting
thanethomson Jul 26, 2021
1f6a706
Extract TryClone trait into its own crate
thanethomson Jul 27, 2021
8627925
Reorder imports
thanethomson Jul 27, 2021
6571b59
Assert validation regardless of debug build
thanethomson Jul 27, 2021
042b3f4
Remove remote_pubkey optionality from sender/receiver halves
thanethomson Jul 27, 2021
c5be1b4
Update SecretConnection docs with comment content
thanethomson Jul 27, 2021
9da6097
Fix doc link to TryClone trait
thanethomson Jul 27, 2021
2c9aafe
Fix doc link to TryClone trait
thanethomson Jul 27, 2021
4f32c17
Add docs on SecretConnection failures and connection integrity
thanethomson Jul 27, 2021
b8913c0
Synchronize sending/receiving failures to comply with crypto algorith…
thanethomson Jul 27, 2021
68ad278
Rename try_split method to split for SecretConnection
thanethomson Jul 28, 2021
a9c9b98
Remove redundant field name prefixes
thanethomson Jul 28, 2021
2d5ef8b
Fix broken link in docs
thanethomson Jul 28, 2021
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
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
- `[tendermint-p2p]` The `SecretConnection` can now be split into two halves to
facilitate full-duplex communication (must be facilitated by using each half
in a separate thread).
([#938](https://github.com/informalsystems/tendermint-rs/pull/938))
1 change: 1 addition & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ members = [
"pbt-gen",
"proto",
"rpc",
"std-ext",
"tendermint",
"test",
"testgen"
Expand Down
1 change: 1 addition & 0 deletions p2p/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ zeroize = "1"
# path dependencies
tendermint = { path = "../tendermint", version = "0.21.0" }
tendermint-proto = { path = "../proto", version = "0.21.0" }
tendermint-std-ext = { path = "../std-ext", version = "0.21.0" }

# optional dependencies
prost-amino = { version = "0.6", optional = true }
Expand Down
Loading