The IC-API exposes many important IC stats such as subnet state size, # of canisters, transaction and cycle burn rate, account & transaction history, as well as neuron voting history. The IC-API powers the Internet Computer Dashboard, and several other prominent applications that pull various statistics from this API.
Why is it important that the IC API is open sourced?
We now have many promising signs that the IC is growing rapidly during this bear market, such as through the impressive cycles burn rate spikes shown via this Tweet from @chepreghy
Much of the data incorporated into the IC Dashboard is all based on an off-chain CDN backed portion of the IC-API hosted on Cloudflare to handle large, aggregate data (too big for the IC?) and service in a performant fashion (too slow for the IC?), for which the code is closed source and owned by DFINITY (via the Internet Computer Association).
Until this code is open sourced and verifiable or another team builds their own API, we as a community cannot 100% trust the data coming from the IC-API, any marketing or promotion coming resulting from this data, or any products that directly incorporate this data (i.e. the IC Dashboard).
Very good proposal, but what about the possibility of modifying the source code of the official dashboard vs the one that’s open sourced, you can never know what runs behind the scenes on a website you browse, so basically if someone doesn’t trust the official dashboard will have to host his own from this open source code in order to make sure it’s the same?
If the dashboard existed in a a canister people could compare the Wasm hash to verify that it was produced from the source code it was supposed to originate from.
Sure, but the the bigger issue isn’t the dashboard frontend.
It’s the API and the pipeline feeding into the data store and cdn of which all of the dashboard data is coming from.
Without that being open sourced, the community has no idea about the data pipeline coming from the IC into the API data store, and it follows that we can’t know if the dashboard and IC stats data is completely accurate. We also don’t know if neurons or voting power are being hidden, etc.
Think about this - you’re building codebase for an ecosystem and network you think is expanding based on dashboard stats - but you have no idea if those are 100% accurate or not, and what the data and code backing those stats looks like. Exposing this in the API code would be the proof that the governance and network usage data is legitimate.
I also think that DFINITY would want to open source this so that external teams can build their own 3rd party explorer UIs to pull data from the IC-API or build their own network stats APIs, so I have no idea why DFINITY hasn’t given an official response to this post or the other times I’ve asked this question.
@diegop I know you’re busy, but can you possibly track this down for? (Give a reason as to why the IC API and is not open sourced?).
Update: I did escalate this within DFINITY R&D team.
DFINITY agrees with open sourcing the dashboard code. The teams need to do more clean up and security reviews, so it is “on the path.” Being realistic (and to set expectations), I would say this would be measured in months not weeks based on my experience in open sourcing key infrastructure pieces at DFINITY (clean up, docs, security reviews + follow up from security reviews).
For context: This falls under the purview of @jeff’s team (who own the dashboard).
I’ve scraped these v3 endpoints from dashboard.internetcomputer.org
Putting them here in case anybody finds them interesting.
Open sourcing this would be nice.
I guess the next step is to open source the IC-API itself, in particular:
Where do all the data come from. What data can be read by querying certain canisters? Any access restrictions involved in reading such data? What data can’t be read publicly yet (e.g. requiring node access, or network topology knowledge)?
(less important) the data pipelines used to generate the API response.
If not everything can be practically open sourced at this point, I think it’d be nice to at least partially open source this, especially those related to neurons and voting.
Hi zlysunshine. Followees are not exposed in a public manner. Those can also be accessed by the controller or hotkey using get_full_neuron or list_neurons endpoints on the governance canister.
This endpoint currently does not supply the total as a single data point, so I will add that as a bugfix ticket on our end. We should have that done and deployed within the next 2 weeks.