diff options
Diffstat (limited to 'desk/sur')
-rw-r--r-- | desk/sur/nostr.hoon | 80 | ||||
-rw-r--r-- | desk/sur/nostrill.hoon (renamed from desk/sur/nostril.hoon) | 22 |
2 files changed, 79 insertions, 23 deletions
diff --git a/desk/sur/nostr.hoon b/desk/sur/nostr.hoon index 78c00ab..ff5ad6b 100644 --- a/desk/sur/nostr.hoon +++ b/desk/sur/nostr.hoon @@ -25,23 +25,81 @@ $: pubkey=@ux :: 32bytes $: name=@t about=@t picture=@t - other=(map @t @t) + other=(map @t json) +== ++$ relay-stats +$: connected=(unit @da) + reqs=(map sub-id event-stats) +== ++$ event-stats + [filters=(list filter) received=event-count] ++$ sub-id @t ++$ event-count @ud + ++$ relay-req +$: sub-id=@t + filters=(list filter) == :: Relay comms +$ filter -$: ids=(list @ux) - authors=(list @ux) - kinds=(list @ud) - tag=(unit [key=@ values=(list @t)]) - since=(unit @ud) - until=(unit @ud) - limit=(unit @ud) +$: ids=(unit (set @ux)) + authors=(unit (set @ux)) + kinds=(unit (set @ud)) + tags=(unit (map @t (set @t))) + since=(unit @da) + until=(unit @da) + limit=(unit @ud) +== +:: messages from relay +++ relay-msg +$% [%event sub-id=@t =event] + [%ok id=@ux accepted=? msg=@t] + [%eose sub-id=@t] + [%closed sub-id=@t msg=@t] + [%notice msg=@t] + [%auth challenge=@t] + :: from our shim + [%error msg=@t] == ++ shim |% ++ url 'http://localhost:8888/shim' - +$ get (list [relay=@t filters=(list filter)]) - +$ post [=event relays=(list @t)] - +$ req $%([%get get] [%post post]) + +$ req + $% [%req relay-req] + [%event =event] + [%auth =event] + [%close sub-id=@t] + == + +$ bulk-req [relays=(list @t) =req] + +$ http-req [relay=@t delay=@ud sub-id=@t filters=(list filter)] + +$ res $%([%http p=(list relay-msg)] [%ws relay=@t msg=relay-msg]) -- + +:: https://github.com/sesseor/nostr-relays-list/blob/main/relays.txt +++ public-relays ^- (list @t) + :~ 'wss://nos.lol' + :: 'wss://relay.damus.io' + :: 'wss://nostr.wine' + :: 'wss://offchain.pub' + == + :: 'wss://knostr.neutrine.com' -- +:: event: { +:: content: "😂", +:: created_at: 1758049319, +:: id: "36c8a0bb6a9a1ff3ca3e6868fdf2c055a09aea39b1c078b75c38f5a7b580da87", +:: kind: 7, +:: pubkey: "26d6a946675e603f8de4bf6f9cef442037b70c7eee170ff06ed7673fc34c98f1", +:: sig: "7b5a9c799776935f959eccfd311af6152db6a1360296c9790b35544d0b83a8d75f8937ad1ad6f5da3e0d3e2bdb1bfb92686adbde42c3ef53ca06771080d08153", +:: tags: [ +:: [ "e", "091d00811bb9a57088ab7c1d39697b0ed9bbbe05dae135b406f3560290fba311", +:: "wss://relay.nostr.band/", "root", "26d6a946675e603f8de4bf6f9cef442037b70c7eee170ff06ed7673fc34c98f1" +:: ], [ "e", "1cd926b58a1bac70adcedf38212d72ee1380e17dad1aef6bbc18782c5c540236", +:: "wss://relay.nostr.band/", "reply", "3252715543f6e43be086465129b030d47d76cf8cead4798e48864563c3375083" +:: ], [ "p", "26d6a946675e603f8de4bf6f9cef442037b70c7eee170ff06ed7673fc34c98f1", +:: "wss://nostr.bitcoiner.social/" +:: ], [ "p", "3252715543f6e43be086465129b030d47d76cf8cead4798e48864563c3375083", +:: "ws://relay.snort.social/" +:: ], [ "e", "b9a0c3b28a291d80bcb41ee730f2c48366fd2fefba0e68f9fb928bb9ca96f757" ], [ "p", "3252715543f6e43be086465129b030d47d76cf8cead4798e48864563c3375083" ] +:: ], +:: }, diff --git a/desk/sur/nostril.hoon b/desk/sur/nostrill.hoon index a1cc5ee..ad82661 100644 --- a/desk/sur/nostril.hoon +++ b/desk/sur/nostrill.hoon @@ -4,22 +4,24 @@ +$ state-0 $: %0 :: nostr config - relays=(map @t (list event:nostr)) - keys=(map @ux @ux) :: pubkey to privkey + relays=(map @t relay-stats:nostr) + keys=(lest keys:nostr) :: cycled, i.keys is current one :: own feed feed=feed:trill + :: nostr feed from relays + =nostr-feed + :: profiles profiles=(map @ux user-meta:nostr) following=(map @ux =feed:trill) follow-graph=(map @ux (set follow)) + :: for http requests + pending=(map @t [pending=filter:nostr done=filter:nostr]) :: TODO global feed somehow? == ++$ nostr-feed ((mop @ud event:nostr) gth) +++ norm ((on @ud event:nostr) gth) +$ follow [pubkey=@ux name=@t relay=(unit @t)] -++ default ^- state-0 - =/ s *state-0 - =/ l ~[['wss://relay.damus.io' ~] ['wss://nos.lol' ~]] - s(relays (malt l)) - ++ ui |% +$ poke @@ -27,7 +29,7 @@ [%post post-poke] :: [%reac reac-poke] [%prof prof-poke] - [%keys keys-poke] + [%keys ~] :: cycle-keys [%rela relay-poke] == +$ post-poke @@ -43,10 +45,6 @@ $% [%add pubkey=@ux meta=user-meta:nostr] [%del pubkey=@ux] == - +$ keys-poke - $% [%add ~] - [%del pubkey=@ux] - == +$ relay-poke $% [%send host=@p id=@ relays=(list @t)] == |