mirror of https://github.com/voidlizard/hbs2
wip, receiving accept message
This commit is contained in:
parent
8b5d4522da
commit
3e1b3917ee
|
@ -250,6 +250,9 @@ refChanUpdateProto self pc adapter msg = do
|
||||||
|
|
||||||
sto <- getStorage
|
sto <- getStorage
|
||||||
|
|
||||||
|
let pk = view peerSignPk pc
|
||||||
|
let sk = view peerSignSk pc
|
||||||
|
|
||||||
void $ runMaybeT do
|
void $ runMaybeT do
|
||||||
|
|
||||||
guard (auth || self)
|
guard (auth || self)
|
||||||
|
@ -309,7 +312,6 @@ refChanUpdateProto self pc adapter msg = do
|
||||||
-- теперь достаём голову
|
-- теперь достаём голову
|
||||||
headBlock <- MaybeT $ getActualRefChanHead @e refchanKey
|
headBlock <- MaybeT $ getActualRefChanHead @e refchanKey
|
||||||
|
|
||||||
|
|
||||||
let pips = view refChanHeadPeers headBlock
|
let pips = view refChanHeadPeers headBlock
|
||||||
let aus = view refChanHeadAuthors headBlock
|
let aus = view refChanHeadAuthors headBlock
|
||||||
|
|
||||||
|
@ -325,10 +327,16 @@ refChanUpdateProto self pc adapter msg = do
|
||||||
|
|
||||||
lift $ gossip msg
|
lift $ gossip msg
|
||||||
|
|
||||||
let tran = AcceptTran headRef (HashRef hash)
|
-- FIXME: check-if-we-authorized
|
||||||
|
-- проверить, что мы вообще авторизованы
|
||||||
|
-- рассылать ACCEPT
|
||||||
|
|
||||||
let pk = view peerSignPk pc
|
guard ( pk `HashMap.member` pips )
|
||||||
let sk = view peerSignSk pc
|
|
||||||
|
-- если нет - то и всё, просто перешлём
|
||||||
|
-- по госсипу исходную транзу
|
||||||
|
|
||||||
|
let tran = AcceptTran headRef (HashRef hash)
|
||||||
|
|
||||||
-- -- генерируем Accept
|
-- -- генерируем Accept
|
||||||
let accept = Accept chan (makeSignedBox @e pk sk tran)
|
let accept = Accept chan (makeSignedBox @e pk sk tran)
|
||||||
|
@ -344,6 +352,13 @@ refChanUpdateProto self pc adapter msg = do
|
||||||
guard =<< lift (refChanHeadSubscribed adapter chan)
|
guard =<< lift (refChanHeadSubscribed adapter chan)
|
||||||
debug "RefChanUpdate/ACCEPT"
|
debug "RefChanUpdate/ACCEPT"
|
||||||
|
|
||||||
|
-- TODO: implement-accept
|
||||||
|
-- проверяем подпись пира
|
||||||
|
-- смотрим, что такая транза у нас вообще есть
|
||||||
|
-- смотрим, что она валидна (голова совпадает, права совпадают)
|
||||||
|
-- если да и всё ок - то считаем, сколько у нас accept-ов
|
||||||
|
-- получено (где? в базе? в сессии?)
|
||||||
|
|
||||||
where
|
where
|
||||||
proto = Proxy @(RefChanUpdate e)
|
proto = Proxy @(RefChanUpdate e)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue