mirror of https://github.com/voidlizard/hbs2
faster-download-start
This commit is contained in:
parent
4aeb91a4b2
commit
351ac97d44
|
@ -55,7 +55,7 @@ defBlockSizeCacheTime :: TimeSpec
|
||||||
defBlockSizeCacheTime = toTimeSpec ( 30 :: Timeout 'Seconds )
|
defBlockSizeCacheTime = toTimeSpec ( 30 :: Timeout 'Seconds )
|
||||||
|
|
||||||
defRequestLimitSec :: Timeout 'Seconds
|
defRequestLimitSec :: Timeout 'Seconds
|
||||||
defRequestLimitSec = 300
|
defRequestLimitSec = 10 -- 300
|
||||||
|
|
||||||
defBlockBanTime :: TimeSpec
|
defBlockBanTime :: TimeSpec
|
||||||
defBlockBanTime = toTimeSpec defBlockBanTimeSec
|
defBlockBanTime = toTimeSpec defBlockBanTimeSec
|
||||||
|
@ -70,7 +70,7 @@ defBlockWipTimeout :: TimeSpec
|
||||||
defBlockWipTimeout = defCookieTimeout
|
defBlockWipTimeout = defCookieTimeout
|
||||||
|
|
||||||
defBlockInfoTimeout :: Timeout 'Seconds
|
defBlockInfoTimeout :: Timeout 'Seconds
|
||||||
defBlockInfoTimeout = 20
|
defBlockInfoTimeout = 1
|
||||||
|
|
||||||
defBlockInfoTimeoutSpec :: TimeSpec
|
defBlockInfoTimeoutSpec :: TimeSpec
|
||||||
defBlockInfoTimeoutSpec = toTimeSpec defBlockInfoTimeout
|
defBlockInfoTimeoutSpec = toTimeSpec defBlockInfoTimeout
|
||||||
|
|
|
@ -72,7 +72,7 @@ instance HasProtocol L4Proto (BlockInfo L4Proto) where
|
||||||
|
|
||||||
-- FIXME: requestMinPeriod-breaks-fast-block-download
|
-- FIXME: requestMinPeriod-breaks-fast-block-download
|
||||||
--
|
--
|
||||||
requestPeriodLim = ReqLimPerMessage 1
|
requestPeriodLim = ReqLimPerMessage 0.5
|
||||||
|
|
||||||
instance HasProtocol L4Proto (BlockChunks L4Proto) where
|
instance HasProtocol L4Proto (BlockChunks L4Proto) where
|
||||||
type instance ProtocolId (BlockChunks L4Proto) = 2
|
type instance ProtocolId (BlockChunks L4Proto) = 2
|
||||||
|
@ -116,7 +116,7 @@ instance HasProtocol L4Proto (RefLogUpdate L4Proto) where
|
||||||
encode = serialise
|
encode = serialise
|
||||||
|
|
||||||
-- TODO: find-out-optimal-max-safe-frequency
|
-- TODO: find-out-optimal-max-safe-frequency
|
||||||
requestPeriodLim = ReqLimPerMessage 600
|
requestPeriodLim = ReqLimPerMessage 60
|
||||||
|
|
||||||
instance HasProtocol L4Proto (RefLogRequest L4Proto) where
|
instance HasProtocol L4Proto (RefLogRequest L4Proto) where
|
||||||
type instance ProtocolId (RefLogRequest L4Proto) = 8
|
type instance ProtocolId (RefLogRequest L4Proto) = 8
|
||||||
|
@ -148,7 +148,7 @@ instance HasProtocol L4Proto (EncryptionHandshake L4Proto) where
|
||||||
decode = deserialiseCustom
|
decode = deserialiseCustom
|
||||||
encode = serialise
|
encode = serialise
|
||||||
|
|
||||||
requestPeriodLim = ReqLimPerProto 0.5
|
requestPeriodLim = ReqLimPerProto 0.1
|
||||||
|
|
||||||
|
|
||||||
instance HasProtocol L4Proto (RefChanUpdate L4Proto) where
|
instance HasProtocol L4Proto (RefChanUpdate L4Proto) where
|
||||||
|
|
|
@ -514,6 +514,7 @@ blockDownloadLoop env0 = do
|
||||||
wipNum <- asks (view blockInQ) >>= liftIO . readTVarIO <&> HashMap.size
|
wipNum <- asks (view blockInQ) >>= liftIO . readTVarIO <&> HashMap.size
|
||||||
|
|
||||||
when (wipNum == 0) do
|
when (wipNum == 0) do
|
||||||
|
trace "NOTHING TO DOWNLOAD"
|
||||||
pause @'Seconds 1
|
pause @'Seconds 1
|
||||||
next
|
next
|
||||||
|
|
||||||
|
@ -527,7 +528,7 @@ blockDownloadLoop env0 = do
|
||||||
pure $ not busy
|
pure $ not busy
|
||||||
|
|
||||||
when (List.null pips) do
|
when (List.null pips) do
|
||||||
void $ liftIO $ race (pause @'Seconds 5) $ do
|
void $ liftIO $ race (pause @'Seconds 1) $ do
|
||||||
trace "ALL PEERS BUSY"
|
trace "ALL PEERS BUSY"
|
||||||
void $ liftIO $ atomically $ do
|
void $ liftIO $ atomically $ do
|
||||||
p <- readTQueue released
|
p <- readTQueue released
|
||||||
|
@ -569,7 +570,7 @@ blockDownloadLoop env0 = do
|
||||||
liftIO $ atomically $ modifyTVar downMiss succ
|
liftIO $ atomically $ modifyTVar downMiss succ
|
||||||
|
|
||||||
Right (Just size) -> do
|
Right (Just size) -> do
|
||||||
-- trace $ "BLOCK SIZE" <+> pretty p <+> pretty h <+> pretty size
|
trace $ "BLOCK SIZE" <+> pretty p <+> pretty h <+> pretty size
|
||||||
let downFail = view peerDownloadFail pinfo
|
let downFail = view peerDownloadFail pinfo
|
||||||
let downBlk = view peerDownloadedBlk pinfo
|
let downBlk = view peerDownloadedBlk pinfo
|
||||||
|
|
||||||
|
|
|
@ -112,7 +112,6 @@ instance ( Hashable (Peer e)
|
||||||
updateOP br (deleteDownload br what)
|
updateOP br (deleteDownload br what)
|
||||||
|
|
||||||
onKnownPeers br ps = do
|
onKnownPeers br ps = do
|
||||||
trace $ "BRAINS: onKnownPeers" <+> pretty ps
|
|
||||||
let tv = view brainsPeers br
|
let tv = view brainsPeers br
|
||||||
liftIO $ atomically $ writeTVar tv ps
|
liftIO $ atomically $ writeTVar tv ps
|
||||||
updateOP br $ do
|
updateOP br $ do
|
||||||
|
|
Loading…
Reference in New Issue