-
Notifications
You must be signed in to change notification settings - Fork 8
feat(solana): wire with samples & tests #168
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
base: main
Are you sure you want to change the base?
feat(solana): wire with samples & tests #168
Conversation
- Add solana to config ledgers - Add BigQuery query and wire data collection - Wire parser to DummyParser and mapping to DummyMapping - Add sample_solana_raw_data.json - Add DummyParser and DummyMapping tests for Solana
|
hi @LadyChristina I found the repo through your presentation at SBC 2025. please let me know what i need to change in this PR to get this merged, would love to proceed to add Solana everywhere across EDI too cc @dimkarakostas for vis |
|
Hi @vinhloc30796, thanks a lot for your contribution. Adding support for Solana is something we've been wanting to do for a long time, so this is very helpful. However, I'm a bit concerned about the lack of "mapping" data, as this means that an entity that controls multiple addresses will be presented as multiple independent entities in the results. Do you know if there are any websites that might offer this kind of attribution data for Solaba addresses? Like Etherscan does for Ethereum for example. Or alternatively, if there is a way to determine from the addresses themselves if they belong to the same user (this is something we do in Cardano for example by taking advantage of the address / staking keys format). |
yes, Solscan came immediately to mind. They have an API that comes at $199/month with this endpoint for label https://pro-api.solscan.io/pro-api-docs/v2.0/reference/v2-account-metadata there are some free options:
Question 1: @LadyChristina how should I submit this data in the PR? should i just do a some other paid options:
Question 2: @LadyChristina does EDI get support or resources for these paid endpoints? |
This will depend on the type of data that you collect. Data that links an address to the entity that controls it should be indeed under If you also have data that clusters together different validators then this would go under { Hope this is clear, but let me know if you still have any questions.
I'm afraid we don't currently have any funding that we can use towards obtaining such data, though @mtefagh will be better-suited to answer this. |
|
re Q1: sounds good @LadyChristina, i was just confirming because it may be large, let me attempt & then we can go from there! |
- add collect_solana_validators.py with CLI and retry
- resolve token via CLI, env, or mapping_information/.env
- output addresses map {name, source}, one entry per line
- support --include-vote and --copy-to-pool (full metadata)
- add get_solana_info.py identifiers and clusters by homepage
- set cluster source to homepage URL
- add SOLANA.md and .env.example
- ignore .env; tidy docs formatting
|
@LadyChristina i've added more data, there are ~900 validators on Solana, whom I have clustered using the same method as Cardano -- lmk your feedback! |
| WHERE is_coinbase is TRUE | ||
| AND timestamp > '2018-01-01' | ||
| ORDER BY timestamp | ||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Missing closing quotes here
| 'litecoin': DefaultMapping, | ||
| 'zcash': DefaultMapping, | ||
| 'tezos': TezosMapping, | ||
| 'solana': DummyMapping, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Now that the mapping information is in place, this should be changed to a non-dummy mapping. I'm assuming we'll need a new SolanaMapping that inherits from DefaultMapping and overrides some functions, like map_from_known_clusters
Thanks @vinhloc30796, overall it looks really good! I just want to try to run everything on my side properly before approving the PR. One comment I have is that now that the mapping data exists, we also need to use it in the code (see comment above). Then, there's also a part where I actually got confused when running it on my end, but I don't know if I'm just doing sth wrong, as I don't really understand why it's happening. I tried to run the solana query on BigQuery, but when I do it through the |
All Submissions:
Description
Wire Solana with samples & tests
Closes #153
Checklist
/* Keep from below the appropriate checklist for your Pull Request and remove the others */
New Ledger Support Submissions:
consensus_decentralization/parse.py?consensus_decentralization/map.py?Update Mapping Support Information Submissions:
New Metric Support Submissions:
consensus_decentralization/metrics?compute_{metric name}?consensus_decentralization/analyze.py?config.yaml?