feat(aggregator): replace cexplorer pools ticker retriever with a blockfrost based implementation#2896
Merged
Merged
Conversation
Alenar
force-pushed
the
djo/2878/aggregator-replace-spo-ticker
branch
from
January 8, 2026 15:50
39f6d3b to
3e37316
Compare
jpraynaud
reviewed
Jan 9, 2026
Alenar
force-pushed
the
djo/2878/aggregator-replace-spo-ticker
branch
3 times, most recently
from
January 9, 2026 17:59
c4c7754 to
41fb6c1
Compare
…ectory preliminary step to split it in several, isolated, parts
Export their module instead of re-exporting the types.
To fetch the hashmap of pool id / pool ticker + name from Blockfrost
An alternative to the existing `string_or_struct` helper but that can be applied to optional fields.
Which is supersede by `BlockfrostSignerRetriever`
instead of the removed cexplorer retriever
Note: all doc changes are foward looking, the actual configuration strucute will be modified in another PR, in the meantime the blockfrost configuration won't be enabled.
…` version * mithril-cli-helper from `0.0.7` to `0.0.8` * mithril-aggregator from `0.8.6` to `0.8.7` * mithril-infra/assets/infra.version from `0.4.13` to `0.4.14`
Alenar
force-pushed
the
djo/2878/aggregator-replace-spo-ticker
branch
from
January 12, 2026 17:03
41fb6c1 to
cf414d7
Compare
Alenar
temporarily deployed
to
testing-preview
January 12, 2026 17:17 — with
GitHub Actions
Inactive
Alenar
force-pushed
the
djo/2878/aggregator-replace-spo-ticker
branch
from
January 12, 2026 17:19
cf414d7 to
56a682f
Compare
Alenar
temporarily deployed
to
testing-preview
January 12, 2026 17:34 — with
GitHub Actions
Inactive
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Content
This PR replace the service responsible for fetching pools ticker and name from a cexplorer based implementation to a blockfrost based one.
CExplorer removed the file from their server that was used to fetch this data, instead they now propose to use an api but it's not yet stable.
Blockfrost already propose an api endpoint,
/pools/extended, that expose the data we need, plus their current api limits (50 000 requests per day / max 500 per seconds recharging at a rate of 50 each second) allow us to fetch all pools data without hitting their limit.Note
Following discussion on this PR it have been decided to do further modification on the configuration necessitating a new
Secretwrapper type, this will be done in another PR so some TODO were added.Details
Mithril aggregator
tools::signer_importer:api.rsfor the traits and main structure definition, one dedicated file for eachretrieverandpersisterimpltools::signer_importerinstead of being reexported at the crate root.BlockfrostSignerRetriever, leveraging theblockfrostcrate.CExplorerSignerRetriever, as it's not working anymore there's no justification to keep itBlockfrostParametersstruct to hold all blockfrost related configs (:pencil2: for security blockfrost project id is not directly stored, instead a env var name were it should be fetched is given)blockfrost_parameterskeycexplorer_pools_urlkeyBlockfrostSignerRetrieverMisc
serde_jsonto1.0.149(needed by theblockfrostcrate)mithril-cli-helper: addserde_deserialization::string_or_struct_optionalto support deserialing into optional types string that contains a configuration as a jsonPre-submit checklist
Issue(s)
Relates to #2878