haskoin-store 0.53.8 → 0.53.9
raw patch · 6 files changed
+34/−6 lines, 6 filesdep ~haskoin-store-dataPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependency ranges changed: haskoin-store-data
API changes (from Hackage documentation)
+ Haskoin.Store: [storeConfSyncMempool] :: StoreConfig -> !Bool
+ Haskoin.Store.BlockStore: [blockConfSyncMempool] :: BlockStoreConfig -> !Bool
+ Haskoin.Store.Manager: [storeConfSyncMempool] :: StoreConfig -> !Bool
- Haskoin.Store: StoreConfig :: !Int -> ![HostPort] -> !Bool -> !FilePath -> !Network -> !Maybe String -> !Word32 -> !Word32 -> !Int -> !Integer -> !Bool -> !Bool -> !NominalDiffTime -> !NominalDiffTime -> !SockAddr -> WithConnection -> !Int -> !Int -> !Maybe Store -> StoreConfig
+ Haskoin.Store: StoreConfig :: !Int -> ![HostPort] -> !Bool -> !FilePath -> !Network -> !Maybe String -> !Word32 -> !Word32 -> !Int -> !Integer -> !Bool -> !Bool -> !Bool -> !NominalDiffTime -> !NominalDiffTime -> !SockAddr -> WithConnection -> !Int -> !Int -> !Maybe Store -> StoreConfig
- Haskoin.Store.BlockStore: BlockStoreConfig :: !PeerManager -> !Chain -> !Publisher StoreEvent -> !DatabaseReader -> !Network -> !Bool -> !Bool -> !NominalDiffTime -> !Maybe Store -> BlockStoreConfig
+ Haskoin.Store.BlockStore: BlockStoreConfig :: !PeerManager -> !Chain -> !Publisher StoreEvent -> !DatabaseReader -> !Network -> !Bool -> !Bool -> !Bool -> !NominalDiffTime -> !Maybe Store -> BlockStoreConfig
- Haskoin.Store.Manager: StoreConfig :: !Int -> ![HostPort] -> !Bool -> !FilePath -> !Network -> !Maybe String -> !Word32 -> !Word32 -> !Int -> !Integer -> !Bool -> !Bool -> !NominalDiffTime -> !NominalDiffTime -> !SockAddr -> WithConnection -> !Int -> !Int -> !Maybe Store -> StoreConfig
+ Haskoin.Store.Manager: StoreConfig :: !Int -> ![HostPort] -> !Bool -> !FilePath -> !Network -> !Maybe String -> !Word32 -> !Word32 -> !Int -> !Integer -> !Bool -> !Bool -> !Bool -> !NominalDiffTime -> !NominalDiffTime -> !SockAddr -> WithConnection -> !Int -> !Int -> !Maybe Store -> StoreConfig
Files
- CHANGELOG.md +4/−0
- app/Main.hs +13/−0
- haskoin-store.cabal +5/−5
- src/Haskoin/Store/BlockStore.hs +8/−1
- src/Haskoin/Store/Manager.hs +3/−0
- test/Haskoin/StoreSpec.hs +1/−0
CHANGELOG.md view
@@ -4,6 +4,10 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html) +## 0.35.9+### Removed+- Mempool is no longer synced by default to fix public Bitcoin Core regression.+ ## 0.35.8 ### Changed - Put derivations stat inside database.
app/Main.hs view
@@ -69,6 +69,7 @@ , configRedisMax :: !Integer , configWipeMempool :: !Bool , configNoMempool :: !Bool+ , configSyncMempool :: !Bool , configPeerTimeout :: !Int , configPeerMaxLife :: !Int , configMaxPeers :: !Int@@ -101,6 +102,7 @@ , configRedisMax = defRedisMax , configWipeMempool = defWipeMempool , configNoMempool = defNoMempool+ , configSyncMempool = defSyncMempool , configPeerTimeout = defPeerTimeout , configPeerMaxLife = defPeerMaxLife , configMaxPeers = defMaxPeers@@ -175,6 +177,11 @@ defEnv "CACHE" False parseBool {-# NOINLINE defRedis #-} +defSyncMempool :: Bool+defSyncMempool = unsafePerformIO $+ defEnv "SYNC_MEMPOOL" False parseBool+{-# NOINLINE defSyncMempool #-}+ defDiscover :: Bool defDiscover = unsafePerformIO $ defEnv "DISCOVER" False parseBool@@ -499,6 +506,10 @@ flag (configWipeMempool def) True $ long "wipe-mempool" <> help "Wipe mempool at start"+ configSyncMempool <-+ flag (configSyncMempool def) True $+ long "sync-mempool"+ <> help "Sync mempool from peers" configMaxDiff <- option auto $ metavar "INT"@@ -608,6 +619,7 @@ , configMaxPeers = maxpeers , configMaxDiff = maxdiff , configNoMempool = nomem+ , configSyncMempool = syncmem , configCacheRefresh = crefresh , configCacheRetryDelay = cretrydelay , configStatsd = statsd@@ -638,6 +650,7 @@ , storeConfMaxKeys = redismax , storeConfWipeMempool = wipemempool , storeConfNoMempool = nomem+ , storeConfSyncMempool = syncmem , storeConfPeerTimeout = fromIntegral peertimeout , storeConfPeerMaxLife = fromIntegral peerlife , storeConfConnect = withConnection
haskoin-store.cabal view
@@ -4,10 +4,10 @@ -- -- see: https://github.com/sol/hpack ----- hash: 585582b76ffd5ba96243c759d59ac87300d0868ed1b082361e75f3955834a402+-- hash: ee92cb78c54effa254b70e987aa0b0e76e0f620dcab5aa11447a50e6838bbd15 name: haskoin-store-version: 0.53.8+version: 0.53.9 synopsis: Storage and index for Bitcoin and Bitcoin Cash description: Please see the README on GitHub at <https://github.com/haskoin/haskoin-store#readme> category: Bitcoin, Finance, Network@@ -62,7 +62,7 @@ , hashable >=1.3.0.0 , haskoin-core >=0.20.4 , haskoin-node >=0.17.0- , haskoin-store-data ==0.53.8+ , haskoin-store-data ==0.53.9 , hedis >=0.12.13 , http-types >=0.12.3 , lens >=4.18.1@@ -116,7 +116,7 @@ , haskoin-core >=0.20.4 , haskoin-node >=0.17.0 , haskoin-store- , haskoin-store-data ==0.53.8+ , haskoin-store-data ==0.53.9 , hedis >=0.12.13 , http-types >=0.12.3 , lens >=4.18.1@@ -175,7 +175,7 @@ , haskoin-core >=0.20.4 , haskoin-node >=0.17.0 , haskoin-store- , haskoin-store-data ==0.53.8+ , haskoin-store-data ==0.53.9 , hedis >=0.12.13 , hspec >=2.7.1 , http-types >=0.12.3
src/Haskoin/Store/BlockStore.hs view
@@ -223,6 +223,8 @@ -- ^ do not index new mempool transactions , blockConfWipeMempool :: !Bool -- ^ wipe mempool at start+ , blockConfSyncMempool :: !Bool+ -- ^ sync mempool from peers , blockConfPeerTimeout :: !NominalDiffTime -- ^ disconnect syncing peer if inactive for this long , blockConfStats :: !(Maybe Metrics.Store)@@ -351,8 +353,13 @@ n <- asks (blockConfNoMempool . myConfig) unless n f +syncMempool :: Monad m => BlockT m () -> BlockT m ()+syncMempool f = do+ n <- asks (blockConfSyncMempool . myConfig)+ unless n f+ mempool :: (MonadUnliftIO m, MonadLoggerIO m) => Peer -> BlockT m ()-mempool p = guardMempool $ void $ async $ do+mempool p = guardMempool $ syncMempool $ void $ async $ do isInSync >>= \s -> when s $ do $(logDebugS) "BlockStore" $ "Requesting mempool from peer: " <> peerText p
src/Haskoin/Store/Manager.hs view
@@ -91,6 +91,8 @@ -- ^ do not index new mempool transactions , storeConfWipeMempool :: !Bool -- ^ wipe mempool when starting+ , storeConfSyncMempool :: !Bool+ -- ^ sync mempool from peers , storeConfPeerTimeout :: !NominalDiffTime -- ^ disconnect peer if message not received for this many seconds , storeConfPeerMaxLife :: !NominalDiffTime@@ -150,6 +152,7 @@ , blockConfNet = storeConfNetwork cfg , blockConfNoMempool = storeConfNoMempool cfg , blockConfWipeMempool = storeConfWipeMempool cfg+ , blockConfSyncMempool = storeConfSyncMempool cfg , blockConfPeerTimeout = storeConfPeerTimeout cfg , blockConfStats = storeConfStats cfg }
test/Haskoin/StoreSpec.hs view
@@ -93,6 +93,7 @@ , storeConfMaxKeys = 100 * 1000 * 1000 , storeConfNoMempool = False , storeConfWipeMempool = False+ , storeConfSyncMempool = False , storeConfPeerTimeout = 60 , storeConfPeerMaxLife = 48 * 3600 , storeConfConnect = dummyPeerConnect net ad