Introducing the Agents Program: A New Approach to Ambassadorship in the Polkadot Ecosystem

Status Update:

In April 2024 I submitted ref 601 to request funding for Phase 1 of the Agents Program. This funding was approved. I got to work building the relevant components of 1) Indexer to collate on chain info 2) API to provide compiled info from relational DB 3) Simple web UI for displaying the info as an example 4) Manual collation of bounty and program information. These are the 4 items that are necessary to collate on-chain addresses and identities to allow a view into current and historical on chain participation.

I decided to write the indexer in Golang because of its ability to thread. There were limitations in the existing Golang API connector’s connection handling. I ended up creating my own connection handler for block synchronization. It allowed me to scale the indexer up to around ~200 blocks per second of synchronization speed scaled by N archive RPC nodes. Problems came when I began trying to decode the data. In early 2024 a breaking runtime upgrade was implemented that altered the storage breaking a lot of the decoding functionality. Around the same time PJS and other apps broke (unable to submit transactions, view information, etc). I expected that someone (existing maintainers) would update the metadata and API connector. That never happened. They were building this retroactively and their last request covered Sept 2021 → Dec 2023. With the last release since then being December 2023 I assume they aren’t going to continue it.

This left a few options. 1) Update the API connector myself 2) Start phase 2 of the program or 3) Learn rust and code everything in a language that will have future API connector support.

I do not have sufficient understanding of the storage system to build a decoder or patch the existing API connector myself. I did try to find a developer who could take over the repo and patch it without success.

Phase 2 of the program was indexing off-chain data. This consisted of 1) Registrar software allowing on-chain identities to be associated with an expanded set off chain identities and 2) An indexer that would index these off-chain endpoints to allow for not just simply a link to be provided but a compilation of the results. With the approval of #845 it simplified things as I would just need to make custom connectors to verify off-chain associations. But with the migration of identities to the people chain, the optional fields were removed. To add the necessary fields (to associate things like reddit, forum accounts, linked in, etc) I will need to submit PRs for the people runtime.

My only real option is to spend the time to learn rust (my guess, a couple of months depending on how closely it mirrors other languages I know). I’ll then recode the components for phase #1 in Rust which will also give me the skill I need to submit PRs for the people chain runtime. With summer coming I should have the time to learn Rust and then I can rebuild the indexer and complete phase 1 of the project. Hopefully I will have something to show around September - October 2025.

6 Likes