Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/continuous-integration.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ on:
- master

env:
CARDANO_NODE_VERSION: "11.0.1"
CARDANO_NODE_VERSION: "11.1.3"
NETWORK: preprod
S3_DB_PATH: s3://${{ secrets.AWS_S3_BUCKET }}/db-preprod

Expand Down
6 changes: 4 additions & 2 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,13 @@

#### Added

N/A
- Kupo now indexes Dijkstra blocks when it is connected directly to cardano-node. With Ogmios, Kupo stops with an error at the first Dijkstra block, because Ogmios does not serialise Dijkstra transactions yet.

- A Dijkstra transaction that carries sub-transactions is not indexed yet. Kupo stops with an error that names the transaction.

#### Changed

- Bumped internal dependencies to cardano-node==10.5.1
- Kupo now requires cardano-node 11.1 or later. It talks to the node over node-to-client version 23 only, so older nodes are no longer supported.

- Kupo is now built with GHC 9.12.

Expand Down
32 changes: 12 additions & 20 deletions cabal.project
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@ repository cardano-haskell-packages
d4a35cd3121aa00d18544bb0ac01c3e1691d618f462c46129271bccf39f7e8ee

index-state:
, hackage.haskell.org 2026-05-08T22:40:19Z
, cardano-haskell-packages 2026-05-08T13:26:45Z
, hackage.haskell.org 2026-10-23T00:00:00Z
, cardano-haskell-packages 2026-10-30T15:04:17Z

packages:
./
Expand Down Expand Up @@ -46,16 +46,14 @@ package direct-sqlite
flags: +nomutex

constraints:
, any.cardano-node == 11.0.1
, any.cardano-ledger-conway >= 1.24

, any.cardano-ledger-conway >= 1.22.1.0
, any.ouroboros-consensus ^>= 5.3
, any.ouroboros-network ^>= 2.0
, any.cardano-diffusion >= 1.3

, any.ouroboros-consensus ^>= 3.0.1
, any.ouroboros-network ^>= 1.1

, any.io-classes ^>= 1.8
, any.formatting == 7.2.0
, any.validation < 1.2
, any.fast-bech32 == 1.0.1
, any.text source

-- Use serial block IO instead of io_uring to avoid requiring liburing
Expand All @@ -64,21 +62,15 @@ constraints:
, direct-sqlite == 2.3.29.1
, sqlite-simple == 0.4.19.0.1

allow-newer:
*:formatting
, katip:Win32
, io-sim:time
, io-classes:time

-- NOTE update hash using
-- nix-prefetch-git https://github.com/CardanoSolutions/ogmios.git --rev <tag> --fetch-submodules --quiet | jq '.hash' | tail -c +9 | head -c -2
-- nix-prefetch-git https://github.com/IntersectMBO/ogmios.git --rev <tag> --fetch-submodules --quiet | jq '.hash' | tail -c +9 | head -c -2
source-repository-package
type: git
location: https://github.com/CardanoSolutions/ogmios
--sha256: xkOfOdX6Dxi7+VW78Tk3n3MoguIg39pKdxiNVfdeEwE=
tag: ae876badb138f42dcd6d2389734b0c15502684ed
location: https://github.com/IntersectMBO/ogmios
--sha256: UhvUWcW5U20bAGmPF90drDS+oAy8YGRJVUQBZHNOSPM=
tag: 2f9b5d14daeccfece3a7d33f8a10e2136a91fbef
subdir:
server/modules/fast-bech32
server/modules/contra-tracers

source-repository-package
type: git
Expand Down
6 changes: 3 additions & 3 deletions flake.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 2 additions & 0 deletions kupo.cabal

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 2 additions & 0 deletions package.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,7 @@ library:
- bytestring
- cardano-crypto-class
- cardano-crypto-wrapper
- cardano-data
- cardano-ledger-allegra
- cardano-ledger-alonzo
- cardano-ledger-api
Expand All @@ -71,6 +72,7 @@ library:
- cardano-ledger-byron
- cardano-ledger-conway
- cardano-ledger-core
- cardano-ledger-dijkstra
- cardano-ledger-mary
- cardano-ledger-shelley
- cardano-slotting
Expand Down
2 changes: 1 addition & 1 deletion perSystem/project.nix
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@
# Mirrors source-repository-package entries in cabal.project so
# haskell.nix can fetch them deterministically.
sha256map = {
"https://github.com/CardanoSolutions/ogmios"."ae876badb138f42dcd6d2389734b0c15502684ed" = "sha256-xkOfOdX6Dxi7+VW78Tk3n3MoguIg39pKdxiNVfdeEwE=";
"https://github.com/IntersectMBO/ogmios"."2f9b5d14daeccfece3a7d33f8a10e2136a91fbef" = "sha256-UhvUWcW5U20bAGmPF90drDS+oAy8YGRJVUQBZHNOSPM=";
"https://github.com/CardanoSolutions/sqlite-simple"."08015be2ee52a7e67159b6b0c476bd3e0a2e0b87" = "1ahpjycsfibv09kzgfbm4i55z4nz1p3rvnmfwwwraxy45n1ivl85";
"https://github.com/CardanoSolutions/direct-sqlite"."2b14a78cb73805e2e5d84354230e872a223faa39" = "1lwaariy0zjjh006ll1zbpdi9sphyqmcbbxhb0rj99nii5s91fd7";
"https://github.com/CardanoSolutions/text-ansi"."e204822d2f343b2d393170a2ec46ee935571345c" = "16ki7wsf7wivxn65acv4hxwfrzmphq4zp61lpxwzqkgrg8shi8bv";
Expand Down
4 changes: 4 additions & 0 deletions src/Kupo/App.hs
Original file line number Diff line number Diff line change
Expand Up @@ -113,6 +113,7 @@ import Kupo.Data.Cardano
, SlotNo (..)
, Tip
, TransactionId
, checkSubTransactions
, distanceToTip
, getPoint
, getPointSlotNo
Expand Down Expand Up @@ -513,11 +514,13 @@ rollForwardAll
:: forall m block.
( MonadSTM m
, MonadLog m
, MonadThrow m
, Monad (DBTransaction m)
, IsBlock block
)
=> RollForward m block
rollForwardAll tr inputManagement notifyTip Database{..} patterns blks = do
forM_ blks (either throwIO pure . checkSubTransactions . snd)
let (lastKnownTip, lastKnownBlk) = last blks
let lastKnownPoint = getPoint lastKnownBlk
let lastKnownSlot = getPointSlotNo lastKnownPoint
Expand Down Expand Up @@ -581,6 +584,7 @@ rollForwardUntil
:: forall m block.
( MonadSTM m
, MonadLog m
, MonadThrow m
, Monad (DBTransaction m)
, IsBlock block
)
Expand Down
2 changes: 1 addition & 1 deletion src/Kupo/App/Configuration.hs
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@ import qualified Network.WebSockets.Tls as WSS
--

nodeToClientVMin :: NodeToClientVersion
nodeToClientVMin = NodeToClientV_16
nodeToClientVMin = NodeToClientV_23

hydrateChainProducer :: ChainProducer () -> IO (ChainProducer (TMVar IO NetworkParameters))
hydrateChainProducer = \case
Expand Down
1 change: 1 addition & 0 deletions src/Kupo/App/Http.hs
Original file line number Diff line number Diff line change
Expand Up @@ -814,6 +814,7 @@ handleGetMetadata baseHeaders slotArg queryParams Database{..} fetchBlock =
) : baseHeaders
atomically $ putTMVar response $ responseStreamJson headers metadataToJson' $
\yield done -> do
either throwIO pure (checkSubTransactions blk)
traverse_ yield $ foldBlock
(\ix tx ->
if isNothing filterBy || Just (getTransactionId tx) == filterBy then
Expand Down
3 changes: 2 additions & 1 deletion src/Kupo/Control/MonadLog.hs
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ import Control.Monad.Class.MonadTime
)
import Control.Tracer
( Tracer (..)
, mkTracer
, natTracer
, nullTracer
, traceWith
Expand Down Expand Up @@ -135,7 +136,7 @@ withTracers h version tracers action = do
:: Writer
-> TMVar IO ()
-> Tracer IO SomeMsg
tracer say lock = Tracer $ \someMsg@(SomeMsg minSeverity _ msg) -> do
tracer say lock = mkTracer $ \someMsg@(SomeMsg minSeverity _ msg) -> do
let severity = getSeverityAnnotation msg
when (severity >= minSeverity) $ liftIO $ withTMVar lock $ \() -> do
threadId <- myThreadId
Expand Down
Loading
Loading