Add authorized pipe messages over Iroh
This commit is contained in:
parent
3eb6b623e7
commit
78dbbf240b
11 changed files with 712 additions and 31 deletions
|
|
@ -203,15 +203,18 @@ authorized peer's current snapshot for that topic over the same protected path
|
|||
when the caller has `pubsub.subscribe` on `resource:pubsub:<topic>`. Iroh-gossip
|
||||
replication and private topics are future work.
|
||||
|
||||
`geth-pipe` currently supports `pipe listen/connect` against a daemon-lifetime
|
||||
registry. `geth pipe connect <name> --node <node-id>` sends an authorized remote
|
||||
connect request over the protected Iroh control ALPN. The remote daemon validates
|
||||
endpoint/card binding and requires `pipe.connect` on `resource:pipe:<name>`
|
||||
before recording the connection attempt and reporting whether a listener exists.
|
||||
`geth pipe listen <name> --node <node-id>` can also ask a peer to register a
|
||||
daemon-lifetime listener after checking `pipe.listen` on the same resource. This
|
||||
is still a control-plane scaffold for names, listeners, and connection attempts
|
||||
only; it does not carry bytes or forward sockets yet.
|
||||
`geth-pipe` currently supports `pipe listen/connect/send/recv` against a
|
||||
daemon-lifetime runtime. `geth pipe connect <name> --node <node-id>` sends an
|
||||
authorized remote connect request over the protected Iroh control ALPN. The
|
||||
remote daemon validates endpoint/card binding and requires `pipe.connect` on
|
||||
`resource:pipe:<name>` before recording the connection attempt and reporting
|
||||
whether a listener exists. `geth pipe send <name> <message> --node <node-id>`
|
||||
uses the dedicated `/geth/pipe/1` ALPN to write a byte message to a peer
|
||||
listener after the same endpoint/card and capability checks. `geth pipe recv
|
||||
<name>` drains local daemon-lifetime messages. `geth pipe listen <name> --node
|
||||
<node-id>` can also ask a peer to register a daemon-lifetime listener after
|
||||
checking `pipe.listen` on the same resource. Long-lived stdin/stdout streams and
|
||||
TCP/Unix forwarding are still future work.
|
||||
|
||||
`geth-ssh-proxy` currently defines proxy target and connection metadata. The
|
||||
daemon can authorize a remote proxy attempt over the protected Iroh control ALPN
|
||||
|
|
|
|||
|
|
@ -364,6 +364,11 @@ Goal: add authorized stream-oriented management workflows over Iroh.
|
|||
- `[x]` Remote pipe listen requires `pipe.listen` on
|
||||
`resource:pipe:<name>`.
|
||||
- `[x]` Tests cover denied and allowed remote listener registration.
|
||||
- `[x]` `geth pipe send <name> <message> --node <node-id>` carries a byte
|
||||
message over the dedicated `/geth/pipe/1` Iroh ALPN.
|
||||
- `[x]` `geth pipe recv <name>` drains daemon-lifetime pipe messages.
|
||||
- `[x]` Remote pipe send requires `pipe.connect` on
|
||||
`resource:pipe:<name>`.
|
||||
- `[ ]` Pipe connect carries bidirectional byte streams over Iroh.
|
||||
- `[ ]` Streams close cleanly and propagate errors.
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue