haskoin-store 1.6.2 → 1.6.3
raw patch · 2 files changed
+67/−53 lines, 2 filesdep ~haskoin-store-dataPVP ok
version bump matches the API change (PVP)
Dependency ranges changed: haskoin-store-data
API changes (from Hackage documentation)
Files
- app/Main.hs +63/−49
- haskoin-store.cabal +4/−4
app/Main.hs view
@@ -13,7 +13,7 @@ module Main (main) where -import Control.Monad (when)+import Control.Monad (forever, void, when) import Control.Monad.Cont (ContT (ContT), runContT) import Control.Monad.Logger ( LogLevel (..),@@ -36,12 +36,14 @@ ) import Haskoin.Node (withConnection) import Haskoin.Store- ( StoreConfig (..),+ ( Store (..),+ StoreConfig (..), WebConfig (..), WebLimits (..), runWeb, withStore, )+import NQE (receive, withSubscription) import Options.Applicative ( Parser, auto,@@ -129,7 +131,8 @@ noBlockchainInfo :: !Bool, noXPub :: !Bool, healthCheckInterval :: !Int,- bloom :: !Bool+ bloom :: !Bool,+ noWeb :: !Bool } env :: (MonadIO m) => String -> a -> (String -> Maybe a) -> m a@@ -211,6 +214,8 @@ env "HEALTH_CHECK_INTERVAL" 30 readMaybe bloom <- env "BLOOM" False parseBool+ noWeb <-+ env "NO_WEB" False parseBool return Config {version = False, ..} where tickerString =@@ -329,6 +334,10 @@ <> help "Minimum number of connected peers for health check" <> showDefault <> value c.minPeers+ noWeb <-+ flag c.noWeb True $+ long "noweb"+ <> help "Disable web server" webLimits <- do maxItemCount <- option auto $@@ -566,53 +575,58 @@ $(logInfoS) "haskoin-store" $ "Creating working directory (if not found): " <> cs dir createDirectoryIfMissing True dir- store <-- ContT $- withStore- StoreConfig- { maxPeers = cfg.maxPeers,- initPeers = cfg.peers,- discover = cfg.discover,- db = dir </> "db",- net = net,- ctx = ctx,- redis = if cfg.redis then Just cfg.redisURL else Nothing,- gap = cfg.webLimits.xpubGap,- initGap = cfg.webLimits.xpubGapInit,- redisMinAddrs = cfg.redisMinAddrs,- redisMaxKeys = cfg.redisMaxKeys,- wipeMempool = cfg.wipeMempool,- noMempool = cfg.noMempool,- syncMempool = cfg.syncMempool,- mempoolTimeout = cfg.mempoolTimeout,- peerTimeout = fromIntegral cfg.peerTimeout,- maxPeerLife = fromIntegral cfg.maxPeerLife,- connect = withConnection,- stats = stats,- redisSyncInterval = cfg.redisSyncInterval,- bloom = cfg.bloom- }- lift $- runWeb- WebConfig- { host = cfg.host,- port = cfg.port,- store = store,- limits = cfg.webLimits,- maxPendingTxs = cfg.maxPendingTxs,- maxLaggingBlocks = cfg.maxLaggingBlocks,- minPeers = cfg.minPeers,- version = haskoinStoreVersion,- noMempool = cfg.noMempool,- stats = stats,- tickerRefresh = cfg.tickerRefresh,- tickerURL = cfg.tickerURL,- priceHistoryURL = cfg.priceHistoryURL,- noXPub = cfg.noXPub,- noBlockchainInfo = cfg.noBlockchainInfo,- healthCheckInterval = cfg.healthCheckInterval- }+ store <- ContT $ run_store net ctx stats dir+ if cfg.noWeb+ then lift . withSubscription store.pub $ \sub ->+ forever $ void (receive sub)+ else do+ lift $ run_web stats store where+ run_store net ctx stats dir =+ withStore+ StoreConfig+ { maxPeers = cfg.maxPeers,+ initPeers = cfg.peers,+ discover = cfg.discover,+ db = dir </> "db",+ net = net,+ ctx = ctx,+ redis = if cfg.redis then Just cfg.redisURL else Nothing,+ gap = cfg.webLimits.xpubGap,+ initGap = cfg.webLimits.xpubGapInit,+ redisMinAddrs = cfg.redisMinAddrs,+ redisMaxKeys = cfg.redisMaxKeys,+ wipeMempool = cfg.wipeMempool,+ noMempool = cfg.noMempool,+ syncMempool = cfg.syncMempool,+ mempoolTimeout = cfg.mempoolTimeout,+ peerTimeout = fromIntegral cfg.peerTimeout,+ maxPeerLife = fromIntegral cfg.maxPeerLife,+ connect = withConnection,+ stats = stats,+ redisSyncInterval = cfg.redisSyncInterval,+ bloom = cfg.bloom+ }+ run_web stats store =+ runWeb+ WebConfig+ { host = cfg.host,+ port = cfg.port,+ store = store,+ limits = cfg.webLimits,+ maxPendingTxs = cfg.maxPendingTxs,+ maxLaggingBlocks = cfg.maxLaggingBlocks,+ minPeers = cfg.minPeers,+ version = haskoinStoreVersion,+ noMempool = cfg.noMempool,+ stats = stats,+ tickerRefresh = cfg.tickerRefresh,+ tickerURL = cfg.tickerURL,+ priceHistoryURL = cfg.priceHistoryURL,+ noXPub = cfg.noXPub,+ noBlockchainInfo = cfg.noBlockchainInfo,+ healthCheckInterval = cfg.healthCheckInterval+ } with_stats net go | cfg.statsd = do $(logInfoS) "Main" $
haskoin-store.cabal view
@@ -5,7 +5,7 @@ -- see: https://github.com/sol/hpack name: haskoin-store-version: 1.6.2+version: 1.6.3 synopsis: Storage and index for Bitcoin and Bitcoin Cash description: Please see the README on GitHub at <https://github.com/jprupp/haskoin-store#readme> category: Bitcoin, Finance, Network@@ -54,7 +54,7 @@ , hashtables >=1.2.4.2 , haskoin-core >=1.3.0 , haskoin-node >=1.4.3- , haskoin-store-data ==1.6.0+ , haskoin-store-data ==1.6.3 , hedis >=0.16.1 , http-types >=0.12.3 , lens >=4.18.1@@ -108,7 +108,7 @@ , haskoin-core >=1.3.0 , haskoin-node >=1.4.3 , haskoin-store- , haskoin-store-data ==1.6.0+ , haskoin-store-data ==1.6.3 , hedis >=0.16.1 , http-types >=0.12.3 , lens >=4.18.1@@ -167,7 +167,7 @@ , haskoin-core >=1.3.0 , haskoin-node >=1.4.3 , haskoin-store- , haskoin-store-data ==1.6.0+ , haskoin-store-data ==1.6.3 , hedis >=0.16.1 , hspec >=2.7.1 , http-types >=0.12.3