would be cool if there was a desktop variant of nip07. How would that work? dbus? socket? tcp?

Reply to this note

Please Login to reply.

Discussion

I'm working on exactly that, using Unix Domain Sockets. Here's my reference implementation: https://crates.io/crates/nip-70

NIP draft coming soon!

interesting, why not nip46/remote signer? could be a local daemon.

Yeah good point - the line between NIP-07 and NIP-46 get a bit blurred for me when focusing on desktop. I'm working with nostr:npub1ygzj9skr9val9yqxkf67yf9jshtyhvvl0x76jp5er09nsc0p3j6qr260k2 on the design and our plan is to write up a NIP that uses the same RPCs as NIP-46 but over UDS. Then any key management desktop app could also be a NIP-46 client and essentially be a per-device Nostr hub that can either hold the private key on device or reach out elsewhere.

I guess this is just nip46/nsecbunker

Yep very similar, just over UDS

Ah

So this is linux specific?

MacOS has UDS as well, and Windows has Named Pipes instead which is almost identical. I haven't messed with Named Pipes yet, but this should be cross-platform eventually.

I definitely like the uds/named pipes approach

if you have a controller/worker process relation you can even use stdin/out

We got a NIP!

https://github.com/nostr-protocol/nips/pull/1222

The NIP covers UDS communication more generally. I wrote a reference implementation in Rust that uses JSON-RPC 2.0 requests/responses wrapped in NIP-04 events exactly as described in NIP-46:

https://crates.io/crates/nip-55

The crate comes with a very basic NIP-46-over-NIP-55 module:

https://docs.rs/nip-55/0.3.1/nip_55/nip46/index.html

You can try out my reference, Keystache, here: https://www.resolvr.io/keystache

awesome, thx

My vote is on NIP-97