diff --git a/docs/todo/refchan.txt b/docs/todo/refchan.txt index df4c6c8c..c6fdc036 100644 --- a/docs/todo/refchan.txt +++ b/docs/todo/refchan.txt @@ -215,7 +215,14 @@ NOTE: refchan-log-syncronization-1 что мы уже обработали, это должно быть достаточно безвредно, если не очень часто. - +TODO: dont-spam-with-notifications + Не рассылать нотификации, если контрагент отказывается их принимать. + Для этого: сделать протокол (?) отказа (?) от рассылки --- допустим, + из одной команды: RejectNotification Key ? + И в госсипе (?) или рефчане/рефлоге с одной стороны --- присылать команду, + что бы заткнулся, с другой стороны -- какой-то кэш устанавливать, и если ключ + не истёк -- то не рассылать сообщения в эту ссылку. + Потребует модификации gossip/broadcast diff --git a/hbs2-core/lib/HBS2/Net/Proto/RefChan.hs b/hbs2-core/lib/HBS2/Net/Proto/RefChan.hs index 077840e8..9fe0e421 100644 --- a/hbs2-core/lib/HBS2/Net/Proto/RefChan.hs +++ b/hbs2-core/lib/HBS2/Net/Proto/RefChan.hs @@ -803,8 +803,6 @@ refChanNotifyProto self adapter msg@(Notify rchan box) = do peer <- thatPeer proto - debug $ "&&& refChanNotifyProto" <+> pretty self - let h0 = hashObject @HbSync (serialise msg) auth <- find (KnownPeerKey peer) id <&> isJust @@ -815,6 +813,8 @@ refChanNotifyProto self adapter msg@(Notify rchan box) = do guard (self || auth) + debug $ "&&& refChanNotifyProto" <+> pretty self + deferred proto do guard =<< liftIO (hasBlock sto h0 <&> isNothing)