packages feed

haskoin-store 0.21.6 → 0.21.7

raw patch · 5 files changed

+113/−105 lines, 5 filesdep −resourcetdep ~QuickCheckdep ~aesondep ~bytestring

Dependencies removed: resourcet

Dependency ranges changed: QuickCheck, aeson, bytestring, cereal, conduit, containers, data-default, deepseq, hashable, haskoin-core, haskoin-node, hedis, hspec, http-types, monad-logger, mtl, network, nqe, random, rocksdb-haskell, scotty, string-conversions, text, time, transformers, unliftio, unordered-containers, wai, warp

Files

CHANGELOG.md view
@@ -4,6 +4,13 @@ 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.21.7+### Changed+- Improve build configuration.++### Fixed+- Use minimum used addresses instead of minimum index for xpub cache decision.+ ## 0.21.6 ### Fixed - Fix missing xpub unspent outputs when using cache.
app/Main.hs view
@@ -155,7 +155,7 @@     configRedisMin <-         option auto $         metavar "MINADDRS" <> long "cachemin" <>-        help "Minimum xpub address count to cache" <>+        help "Minimum used xpub addresses to cache" <>         showDefault <>         value defRedisMin     pure
haskoin-store.cabal view
@@ -4,12 +4,15 @@ -- -- see: https://github.com/sol/hpack ----- hash: 6c63490ebe39ea225abdcdb632f87f7913ab38a1bba8e637149e5873b85d8803+-- hash: 89d53a7ce243c07c2c313ca4cdeef18c520b70f50e576c1810596f1e412f4eee  name:           haskoin-store-version:        0.21.6+version:        0.21.7 synopsis:       Storage and index for Bitcoin and Bitcoin Cash-description:    Store blocks, transactions, and balances for Bitcoin or Bitcoin Cash, and make that information via REST API.+description:    Store and index Bitcoin or Bitcoin Cash blocks, transactions, balances and unspent outputs.+                All data is available via REST API in JSON or binary format.+                Uses in-process RocksDB database to store data.+                Supports Redis cache that can be shared by multiple nodes for faster access to extended public key balances, transactions and unspent outputs. category:       Bitcoin, Finance, Network homepage:       http://github.com/haskoin/haskoin-store#readme bug-reports:    http://github.com/haskoin/haskoin-store/issues@@ -46,37 +49,35 @@   hs-source-dirs:       src   build-depends:-      QuickCheck-    , aeson+      aeson >=1.4.7.1     , base >=4.9 && <5-    , bytestring-    , cereal-    , conduit-    , containers-    , data-default-    , deepseq-    , hashable-    , haskoin-core >=0.10.1+    , bytestring >=0.10.10.0+    , cereal >=0.5.8.1+    , conduit >=1.3.2+    , containers >=0.6.2.1+    , data-default >=0.7.1.1+    , deepseq >=1.4.4.0+    , hashable >=1.3.0.0+    , haskoin-core >=0.12.0     , haskoin-node >=0.9.21-    , hedis-    , http-types-    , monad-logger-    , mtl-    , network-    , nqe-    , random-    , resourcet-    , rocksdb-haskell+    , hedis >=0.12.13+    , http-types >=0.12.3+    , monad-logger >=0.3.32+    , mtl >=2.2.2+    , network >=3.1.1.1+    , nqe >=0.6.1+    , random >=1.1+    , rocksdb-haskell >=1.0.1     , rocksdb-query >=0.3.1-    , scotty-    , string-conversions-    , text-    , time-    , transformers-    , unliftio-    , unordered-containers-    , wai-    , warp+    , scotty >=0.11.5+    , string-conversions >=0.4.0.1+    , text >=1.2.4.0+    , time >=1.9.3+    , transformers >=0.5.6.2+    , unliftio >=0.2.12.1+    , unordered-containers >=0.2.10.0+    , wai >=3.2.2.1+    , warp >=3.3.10   default-language: Haskell2010  executable haskoin-store@@ -87,40 +88,31 @@       app   ghc-options: -threaded -rtsopts -with-rtsopts=-N   build-depends:-      QuickCheck-    , aeson+      aeson >=1.4.7.1     , base >=4.9 && <5-    , bytestring-    , cereal-    , conduit-    , containers-    , data-default-    , deepseq+    , bytestring >=0.10.10.0+    , cereal >=0.5.8.1+    , conduit >=1.3.2+    , containers >=0.6.2.1+    , data-default >=0.7.1.1+    , deepseq >=1.4.4.0     , filepath-    , hashable-    , haskoin-core >=0.10.1-    , haskoin-node >=0.9.21+    , hashable >=1.3.0.0+    , haskoin-core >=0.12.0+    , haskoin-node     , haskoin-store     , hedis-    , http-types-    , monad-logger-    , mtl-    , network-    , nqe+    , monad-logger >=0.3.32+    , mtl >=2.2.2+    , nqe >=0.6.1     , optparse-applicative-    , random-    , resourcet-    , rocksdb-haskell-    , rocksdb-query >=0.3.1-    , scotty-    , string-conversions-    , text-    , time-    , transformers-    , unliftio-    , unordered-containers-    , wai-    , warp+    , random >=1.1+    , string-conversions >=0.4.0.1+    , text >=1.2.4.0+    , time >=1.9.3+    , transformers >=0.5.6.2+    , unliftio >=0.2.12.1+    , unordered-containers >=0.2.10.0   default-language: Haskell2010  test-suite haskoin-store-test@@ -147,37 +139,36 @@       src   ghc-options: -threaded -rtsopts -with-rtsopts=-N   build-depends:-      QuickCheck-    , aeson+      QuickCheck >=2.13.2+    , aeson >=1.4.7.1     , base >=4.9 && <5-    , bytestring-    , cereal-    , conduit-    , containers-    , data-default-    , deepseq-    , hashable-    , haskoin-core >=0.10.1+    , bytestring >=0.10.10.0+    , cereal >=0.5.8.1+    , conduit >=1.3.2+    , containers >=0.6.2.1+    , data-default >=0.7.1.1+    , deepseq >=1.4.4.0+    , hashable >=1.3.0.0+    , haskoin-core >=0.12.0     , haskoin-node >=0.9.21-    , hedis-    , hspec-    , http-types-    , monad-logger-    , mtl-    , network-    , nqe-    , random-    , resourcet-    , rocksdb-haskell+    , hedis >=0.12.13+    , hspec >=2.7.1+    , http-types >=0.12.3+    , monad-logger >=0.3.32+    , mtl >=2.2.2+    , network >=3.1.1.1+    , nqe >=0.6.1+    , random >=1.1+    , rocksdb-haskell >=1.0.1     , rocksdb-query >=0.3.1-    , scotty-    , string-conversions-    , text-    , time-    , transformers-    , unliftio-    , unordered-containers-    , wai-    , warp+    , scotty >=0.11.5+    , string-conversions >=0.4.0.1+    , text >=1.2.4.0+    , time >=1.9.3+    , transformers >=0.5.6.2+    , unliftio >=0.2.12.1+    , unordered-containers >=0.2.10.0+    , wai >=3.2.2.1+    , warp >=3.3.10   default-language: Haskell2010   build-tool-depends: hspec-discover:hspec-discover
src/Haskoin/Store.hs view
@@ -1,9 +1,18 @@ module Haskoin.Store-    ( StoreConfig (..)+    ( StoreConfig(..)     , store     , withStore-    , module X )-    where+    , module Network.Haskoin.Store.Common+    , module Network.Haskoin.Store.BlockStore+    , module Network.Haskoin.Store.Logic+    , module Network.Haskoin.Store.Web+    , module Network.Haskoin.Store.CacheWriter+    , module Network.Haskoin.Store.Data.Types+    , module Network.Haskoin.Store.Data.CacheReader+    , module Network.Haskoin.Store.Data.DatabaseReader+    , module Network.Haskoin.Store.Data.DatabaseWriter+    , module Network.Haskoin.Store.Data.MemoryDatabase+    ) where  import           Control.Monad                             (forever, unless,                                                             when)@@ -33,16 +42,16 @@                                                             NodeEvent (..),                                                             PeerEvent (..),                                                             node)-import           Network.Haskoin.Store.BlockStore          as X-import           Network.Haskoin.Store.CacheWriter         as X-import           Network.Haskoin.Store.Common              as X-import           Network.Haskoin.Store.Data.CacheReader    as X-import           Network.Haskoin.Store.Data.DatabaseReader as X-import           Network.Haskoin.Store.Data.DatabaseWriter as X-import           Network.Haskoin.Store.Data.MemoryDatabase as X-import           Network.Haskoin.Store.Data.Types          as X-import           Network.Haskoin.Store.Logic               as X-import           Network.Haskoin.Store.Web                 as X+import           Network.Haskoin.Store.BlockStore+import           Network.Haskoin.Store.CacheWriter+import           Network.Haskoin.Store.Common+import           Network.Haskoin.Store.Data.CacheReader+import           Network.Haskoin.Store.Data.DatabaseReader+import           Network.Haskoin.Store.Data.DatabaseWriter+import           Network.Haskoin.Store.Data.MemoryDatabase+import           Network.Haskoin.Store.Data.Types+import           Network.Haskoin.Store.Logic+import           Network.Haskoin.Store.Web import           Network.Socket                            (SockAddr (..)) import           NQE                                       (Inbox, Listen,                                                             Process (..),
src/Network/Haskoin/Store/CacheWriter.hs view
@@ -53,7 +53,7 @@                                                          XPubBal (..),                                                          XPubSpec (..),                                                          XPubUnspent (..),-                                                         sortTxs,+                                                         nullBalance, sortTxs,                                                          xPubAddrFunction,                                                          xPubBals, xPubTxs,                                                          xPubUnspents)@@ -147,7 +147,8 @@     x <- asks cacheWriterMin     when empty $ do         bals <- lift $ xPubBals xpub-        when (x <= length bals) (go bals)+        let l = length $ filter (not . nullBalance . xPubBal) bals+        when (x <= l) (go bals)   where     go bals = do         utxo <- lift $ xPubUnspents xpub Nothing 0 Nothing