summaryrefslogtreecommitdiff
path: root/desk/sur/nostr.hoon
diff options
context:
space:
mode:
authorpolwex <polwex@sortug.com>2025-09-17 12:24:41 +0700
committerpolwex <polwex@sortug.com>2025-09-17 12:24:41 +0700
commit387af8fc1603805b02ce03f8adba4fa73a954f7c (patch)
tree6ac4fe9c33a14d9da418a97955a38efb9338d869 /desk/sur/nostr.hoon
parent31a47ce72255bb56920e417d250541b04be82648 (diff)
relay much more robust
Diffstat (limited to 'desk/sur/nostr.hoon')
-rw-r--r--desk/sur/nostr.hoon80
1 files changed, 69 insertions, 11 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" ]
+:: ],
+:: },