-
Notifications
You must be signed in to change notification settings - Fork 87
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Blockfrost chain layer #1305
Labels
amber ⚠️
Medium complexity or partly unclear feature
Comments
Contributed to the blockfrost-sdk in course of this: blockfrost/blockfrost-haskell#63 |
Minor fix to above contribution: blockfrost/blockfrost-haskell#65 |
4 tasks
4 tasks
This is not done yet. We only did the |
4 tasks
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Why
We think it would be useful to be able to run the hydra-node without the full cardano-node in a more light weight mode and it could provide more insights by dogfooding our product. The feature is also intersting to the BlockFrost people as a first step towards using Hydra for pay-per-use api changes they plan to implement.
What
The hydra node can publish hydra scripts via blockfrost using
--blockfrost
#1668Hydra node can be started with
--blockfrost PROJECT_ID
(providing an API key as project id) instead of--node-socket
(et al)Both options, Blockfrost and Direct, should be available in the same hydra-node release
There is documentation on how to run hydra-node using Blockfrost including the related trust assumptions
If the API key is invalid (or expires), the hydra-node terminates with a meaningful message
The same end-to-end tests we have right now (testing against a cardano-node), we also want to have tested with
--blockfrost
(against public testnets)This means, the blockfrost chain layer needs to be able to
Hydra internal wallet uses
DirectChain
component to get the information about the availableUTxO
at the wallet address and query theEpochInfo
(in order to estimate the transaction fees). We should be able to get this information from blockfrost also https://blockfrost.dev/api/latest-epochHow
First step:
Map out components/modules and how they should be reused/reorganised across chain backends (see also Head in Head #1612 ).Next steps: #1631
Hydra chain observer run with
--blockfrost ...
(not available to hydra-node yet, just hydra-chain-observer)Build a variant of hydra-explorer to the blockfrost-enabled hydra-chain-observer (noting that we might need a different way of discovering existing heads, because we can't look at all history; need to go looking explicitly?)The hydra node uses the (blockfrost) hydra-chain-observer to do chain following
The hydra wallet queries to get information use the blockfrost api ( https://blockfrost.dev/api/latest-epoch )
Later:
Create and submit transactionsEnd to end tests would run against a public blockfrost api (not local devnet)Notes:
direct
chain layer we need to investigate if the blockfrost api provides a way to detectincoming blocks/transactions in order for hydra-node to follow the chain (perhaps getting the block information and then
querying the next block from there https://blockfrost.dev/api/latest-block). Alternatively we could listen to addresses we
care about (eg.
vHead
script address) and be able to observe incoming interesting transactions this way.https://hackage.haskell.org/package/blockfrost-api
Open questions
--start-chain-from
when we use--blockfrost
?The text was updated successfully, but these errors were encountered: