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

[wip] feat: willow implementation #2231

Draft
wants to merge 207 commits into
base: main
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
207 commits
Select commit Hold shift + click to select a range
fad9a11
initial commit
Frando Apr 22, 2024
d04db1b
initial implementation work
Frando Apr 22, 2024
e8064d5
wip: progress
Frando Apr 22, 2024
07c446d
progress
Frando Apr 23, 2024
bd4db24
chore: fmt
Frando Apr 23, 2024
b61e299
more progress
Frando Apr 24, 2024
6acbfcb
more progress
Frando Apr 25, 2024
aff8c44
cleanups
Frando Apr 25, 2024
f5a6724
cleanup
Frando Apr 25, 2024
ab16c40
remove unused code
Frando Apr 25, 2024
31bb1fe
cleanup and renames
Frando Apr 26, 2024
cdb5975
small cleanup
Frando Apr 26, 2024
9d8a9e4
refactor: use encoder trait
Frando Apr 29, 2024
171a32d
wip
Frando May 6, 2024
8a66019
wip
Frando May 7, 2024
bbc0057
working
Frando May 7, 2024
7c8761e
better
Frando May 7, 2024
788fe35
things work!!
Frando May 7, 2024
0009e1b
much much better now
Frando May 8, 2024
c921217
little cleanup
Frando May 8, 2024
ca43379
big cleanup round
Frando May 8, 2024
fff00ff
chore: fix & fmt
Frando May 8, 2024
dcded7c
fixed the shutdown errors and other stuff
Frando May 9, 2024
e9cf94b
better structure for coroutines
Frando May 9, 2024
dfc5076
reduce some boilerplate
Frando May 9, 2024
e65ff91
cleanup
Frando May 9, 2024
ce6a2d4
refactor & cleanup channel impl
Frando May 9, 2024
ae71855
some further cleanup refactoring
Frando May 10, 2024
a2325bd
fix
Frando May 10, 2024
538267f
fix shutdown
Frando May 10, 2024
484b103
implement resource control and refactor channel opening
Frando May 11, 2024
10a347b
further cleanup around APIs
Frando May 13, 2024
ffd63d6
cleanup
Frando May 13, 2024
424f770
better async handling
Frando May 13, 2024
b39e743
wip: use current-thread executor instead of manual coroutines
Frando May 14, 2024
b7d1ac9
refactor: use current-thread executor, and other changes
Frando May 14, 2024
8327d94
cleanups
Frando May 15, 2024
95725be
hide refcells from public apis
Frando May 15, 2024
22a9236
cleanup module structure
Frando May 15, 2024
23a70b1
wip: more stores
Frando May 15, 2024
94e6326
finish keystore impl, cleanups
Frando May 16, 2024
fbc0017
add ReconciliationSendPayload and ReconciliationTerminatePayload mess…
Frando May 16, 2024
5947b74
another round of improvements:
Frando May 17, 2024
65b5494
wait for resources on reconcile start
Frando May 17, 2024
228a238
more cleanup
Frando May 17, 2024
4c46b65
more cleanup and better code structure
Frando May 17, 2024
52f3f3e
cleanup and document utils
Frando May 29, 2024
24f7a28
document channel
Frando May 29, 2024
e96e8e3
more cleanups and docs
Frando May 29, 2024
70ac707
renames
Frando May 29, 2024
301222b
feat: basic support for payloads
Frando May 29, 2024
e86a949
wip: live data mode
Frando May 31, 2024
c73a712
feat: live data mode works between two peers
Frando Jun 3, 2024
939010e
chore: clippy
Frando Jun 3, 2024
665665d
cleanup
Frando Jun 3, 2024
4256f46
fixup after rebase
Frando Jun 3, 2024
a5803b8
revert iroh-base change
Frando Jun 3, 2024
c34324e
refactor: store traits and generics
Frando Jun 3, 2024
6cb0017
cleanup and renames
Frando Jun 3, 2024
836e225
more cleanup
Frando Jun 4, 2024
a49f836
cleanups and renames
Frando Jun 14, 2024
6f68167
add types for subspace capabilities
Frando Jun 14, 2024
0698436
feat/refactor: implement auth and delegations
Frando Jun 17, 2024
4c995dd
wip: auth and delegations
Frando Jun 20, 2024
4d0fc56
improve module structure, cleanups, renames
Frando Jun 20, 2024
7822432
fmt
Frando Jun 20, 2024
1a9eff1
Merge remote-tracking branch 'origin/main' into willow
Frando Jun 20, 2024
468f01a
fix after merging main
Frando Jun 21, 2024
d31084e
fixup
Frando Jun 21, 2024
ee4f865
improve auth handling
Frando Jun 21, 2024
b38487f
refactor: improve session shutdown
Frando Jun 26, 2024
525a900
refactor(meadowcap): ord and partialord for capabilities, and delegat…
Frando Jun 27, 2024
4ab46d6
wip: prepare for private area intersection
Frando Jun 26, 2024
b5a2ddf
feat: private area intersection
Frando Jun 27, 2024
622a565
refactor: add proto::pai and more docs
Frando Jun 27, 2024
b5ba4f3
refactor: decouple PaiFinder from session and store, add test
Frando Jun 27, 2024
186f80c
refactor: cleanup and test improvements
Frando Jun 28, 2024
97e213a
add test for pai with subspace capabilities
Frando Jun 29, 2024
93ca603
refactor: put capabilities in arcs
Frando Jun 29, 2024
2c81e63
fix typo
Frando Jul 1, 2024
32ad404
wip: refactor
Frando Jul 5, 2024
e9d50fb
chore: cleanup refactor
Frando Jul 5, 2024
c6adf66
wip: refactor reconciler and add event bus
Frando Jul 8, 2024
2a40da7
wip: add peer manager and make intents work
Frando Jul 11, 2024
540cd8b
cleanup and refactor and test
Frando Jul 12, 2024
c3ca8fe
cleanup and simplify
Frando Jul 16, 2024
0a21ca8
refactor: use genawaiter and stack futures within a single session
Frando Jul 16, 2024
08ed2ce
refactor: cleanup and fix intents
Frando Jul 17, 2024
1bb3e17
refactor: make engine work fully
Frando Jul 18, 2024
0966fb9
chore: cargo fix
Frando Jul 18, 2024
22d148d
cleanup and fixes
Frando Jul 18, 2024
2d9e127
address review comments
Frando Jul 18, 2024
94569e9
refactor: pass in nonces to allow custom rng
Frando Jul 18, 2024
870ab3f
perf: use map not mutation for vecs
Frando Jul 18, 2024
cf30c38
refactor: use completion type for intent results
Frando Jul 18, 2024
42be303
cleanup
Frando Jul 19, 2024
0fa5ad2
feat: add AcceptOpts to customize betty behavior
Frando Jul 22, 2024
ef26a4a
tests: improve engine tests
Frando Jul 24, 2024
9ad08c9
refactor: move capability storage to trait
Frando Jul 24, 2024
24f3def
docs/refactor: improve docs and cleanup some types
Frando Aug 1, 2024
b650f64
refactor: move integration tests
Frando Aug 1, 2024
5a66d89
docs: utils
Frando Aug 1, 2024
f6b168e
Merge remote-tracking branch 'origin/main' into willow
Frando Aug 6, 2024
ac3d706
fix: improve log levels and namings
Frando Aug 7, 2024
8700e7a
wip: refactor net and peer_manager
Frando Aug 7, 2024
87a42f4
refactor: finalize net and peer_manager refactor
Frando Aug 7, 2024
21aee12
chore: cleanup
Frando Aug 7, 2024
04b2f47
feat: graceful connection termination
Frando Aug 8, 2024
d3f4ab5
refactor: move graceful connection termination out of WGPS protocol
Frando Aug 8, 2024
c9fc2ab
cleanups and test fixes
Frando Aug 8, 2024
fa1e06a
feat: properly deal with simultaneous connections, and restarting ses…
Frando Aug 8, 2024
b799469
fix after rebase
Frando Aug 8, 2024
4126a4e
remove debug log
Frando Aug 8, 2024
a7660ae
fix net_live test
Frando Aug 8, 2024
2c9a2fc
make util pub for now
Frando Aug 8, 2024
23ff675
docs: net module
Frando Aug 8, 2024
684d6ca
fix: cleanup quic connection error codes
Frando Aug 8, 2024
441020b
feat: add timeouts for connection establishment and shutdown
Frando Aug 8, 2024
b9fb6f2
refactor: add willow-rs dependencies
Frando Aug 11, 2024
682d4af
[wip] refactor: start to use willow-rs
Frando Aug 11, 2024
b422c3f
wip: use willow-rs types
Frando Aug 12, 2024
a068573
wip: convert most modules
Frando Aug 12, 2024
f8bdc5f
wip: port the rest of it
Frando Aug 12, 2024
0b5456d
fix: cargo fix
Frando Aug 12, 2024
1eed65d
chore: clippy fix
Frando Aug 12, 2024
33f2fcb
cleanup
Frando Aug 12, 2024
c2d0015
fix: cleanup imports
Frando Aug 12, 2024
c09f930
chore: change cargo patch
Frando Aug 12, 2024
95b3a19
chore: cleanup
Frando Aug 12, 2024
8a104f1
refactor: further cleanup
Frando Aug 12, 2024
f43e0b4
fix: use their_max_payload_size
Frando Aug 12, 2024
435fbfd
fix: simplify and fix graceful connection termination
Frando Aug 13, 2024
8b5e26e
fix: close connection on error too
Frando Aug 13, 2024
0c518c8
fix: don't use 0 error code
Frando Aug 13, 2024
542762d
chore: fmt
Frando Aug 13, 2024
87a11e9
fix: update willow-rs fork
Frando Aug 13, 2024
5a77c9f
Merge branch 'willow' into willow-use-willow-rs
Frando Aug 13, 2024
b9fdb49
fix: typos, more docs, clippy
Frando Aug 13, 2024
65207b8
Merge remote-tracking branch 'origin/main' into willow
Frando Aug 13, 2024
41ad6c9
Merge branch 'willow' into willow-use-willow-rs
Frando Aug 13, 2024
5e1a613
chore: allow public domain license and n0 repos, update yanked crates
Frando Aug 13, 2024
0de4c01
fix: properly create owned vs communal namespaces
Frando Aug 13, 2024
cd25c48
fix: debugging things
Frando Aug 13, 2024
085913e
chore: fmt
Frando Aug 13, 2024
e9d2d84
chore: cargo deny updates
Frando Aug 13, 2024
01e253d
chore: deny.toml fix
Frando Aug 13, 2024
b8061b8
feat: big round of docs updates and pub exposure changes
Frando Aug 13, 2024
965179a
fixup
Frando Aug 13, 2024
3b07a1b
chore: fmt
Frando Aug 13, 2024
e3ee3af
chore: codespell
Frando Aug 13, 2024
c537698
fixup
Frando Aug 13, 2024
46ff9bf
fixup
Frando Aug 13, 2024
723f21c
chore: typo
Frando Aug 13, 2024
5a449ff
test: do not use relay in tests
Frando Aug 13, 2024
6992051
refactor: ensure correct ordering when closing sessions
Frando Aug 19, 2024
b7a3272
feat: close channels on drop
Frando Aug 20, 2024
01ec02f
refactor: improve session shutdown logic
Frando Aug 20, 2024
aad64b9
fix: handle empty payloads
Frando Aug 20, 2024
bfd1da9
fix: handle session errors correctly
Frando Aug 20, 2024
4f8bc5e
Merge remote-tracking branch 'origin/main' into willow
Frando Aug 20, 2024
75e2261
chore: fmt
Frando Aug 20, 2024
0b7bed8
refactor: better namings in reconciler
Frando Aug 20, 2024
168abbd
feat: verified payload streaming
Frando Aug 20, 2024
d5ab28e
docs: improve docs of verifiable stream methods
Frando Aug 21, 2024
5df0b6d
feat: re-add bench example
Frando Aug 23, 2024
81334f1
chore: missing clone and fmt
Frando Aug 26, 2024
109bc8e
test: re-add bench example
Frando Aug 27, 2024
5518f58
Merge remote-tracking branch 'origin/main' into willow-merge
Frando Aug 27, 2024
a17d419
fix: fixes after merge
Frando Aug 27, 2024
82d4abf
feat: add more serde compat to iroh-willow
Frando Aug 26, 2024
c5971c3
feat: integrate willow in iroh
Frando Aug 26, 2024
74f90ad
feat: add willow client
Frando Aug 27, 2024
f79a079
refactor: remove willow feature flag for now
Frando Aug 27, 2024
591c84b
feat: make the spaces client work, add test
Frando Aug 28, 2024
a4020e7
chore: clippy
Frando Aug 28, 2024
224b168
cleanup
Frando Aug 28, 2024
aef8618
cleanups
Frando Aug 28, 2024
0531238
refactor: more cleanups and renames, improve SyncIntentSet
Frando Aug 28, 2024
2c362b3
more renames
Frando Aug 28, 2024
4faba24
fix: less clones
Frando Aug 28, 2024
3484f61
fix(iroh-willow): Remove `flume` dependency (#2674)
matheus23 Aug 28, 2024
e3d4e3e
refactor: make spaces/willow engine optional
Frando Aug 28, 2024
d8f2dc7
Merge branch 'willow-rpc' into willow
Frando Aug 29, 2024
66c2e98
Merge remote-tracking branch 'origin/main' into willow
Frando Aug 29, 2024
d7d3355
fix: fixes after merging main
Frando Aug 29, 2024
de2eaa2
chore: use willow-rs main branch
Frando Aug 29, 2024
d343575
tests: disable test to see if others pass
Frando Aug 29, 2024
c9866d8
chore: typos
Frando Aug 29, 2024
0418fdf
chore: clippy
Frando Aug 29, 2024
81c562f
chore: fmt
Frando Aug 29, 2024
aeff273
fix(iroh-willow): actually create subspace capability (#2683)
Frando Aug 29, 2024
ce96358
depend on exact version of `derive_more`
matheus23 Aug 30, 2024
9216fd6
fix: Don't block current tokio task in `Drop`
matheus23 Aug 30, 2024
b593a80
feat: event subscriptions
Frando Aug 29, 2024
cb207ad
feat: RPC for subscriptions
Frando Aug 29, 2024
5154655
fix: fixes to subscriptions and add test
Frando Aug 29, 2024
dd1e885
fix test
Frando Aug 29, 2024
46c386c
chore: clippy
Frando Aug 29, 2024
f3fa6fe
add test from matheus23
Frando Sep 9, 2024
3c092cc
fix: test
Frando Sep 9, 2024
18dc4e5
Merge branch 'main' into willow
Frando Sep 9, 2024
6d9e5d2
Merge remote-tracking branch 'origin/willow' into Frando/willow-event…
Frando Sep 9, 2024
d0b0250
fix: clippy
Frando Sep 9, 2024
9e0a2c8
Merge branch 'willow' into Frando/willow-event-subscriptions
Frando Sep 9, 2024
d51c3fc
chore: add todo comments
Frando Sep 9, 2024
3b9fd43
refactor: remove count field from ReconciliationAnnounceEntries
Frando Sep 9, 2024
14047d3
fix: do not use store snapshots anymore
Frando Sep 10, 2024
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
187 changes: 165 additions & 22 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

41 changes: 29 additions & 12 deletions Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,25 +1,29 @@
[workspace]
members = [
"iroh",
"iroh-blobs",
"iroh-base",
"iroh-dns-server",
"iroh-gossip",
"iroh-metrics",
"iroh-net",
"iroh-docs",
"iroh-test",
"iroh-net/bench",
"iroh-cli",
"iroh",
"iroh-blobs",
"iroh-base",
"iroh-dns-server",
"iroh-gossip",
"iroh-metrics",
"iroh-net",
"iroh-docs",
"iroh-test",
"iroh-net/bench",
"iroh-cli",
"iroh-willow",
]
resolver = "2"

[profile.release]
debug = true

[profile.bench]
debug = true

[profile.dev-ci]
inherits = 'dev'
opt-level = 1
opt-level = 1

[profile.optimized-release]
inherits = 'release'
Expand All @@ -30,9 +34,22 @@ opt-level = 3
panic = 'abort'
incremental = false

[profile.dev.package]
# optimize crypto dependencies in dev mode
ed25519-dalek = { opt-level = 3 }
curve25519-dalek = { opt-level = 3 }
iroh-blake3 = { opt-level = 3 }

[workspace.lints.rust]
missing_debug_implementations = "warn"

[workspace.lints.clippy]
unused-async = "warn"

[patch.crates-io]
# willow-data-model = { path = "../willow-rs/data-model" }
# willow-encoding = { path = "../willow-rs/encoding" }
# meadowcap = { path = "../willow-rs/meadowcap" }
willow-data-model = { git = "https://github.com/n0-computer/willow-rs.git", branch = "main" }
willow-encoding = { git = "https://github.com/n0-computer/willow-rs.git", branch = "main" }
meadowcap = { git = "https://github.com/n0-computer/willow-rs.git", branch = "main" }
Loading
Loading