Network version drift: update public/api/networks.json - #183
Merged
Conversation
✅ Deploy Preview for alloradocs ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
nickemmons
added a commit
that referenced
this pull request
Aug 24, 2026
…lly (#184) Mainnet applied the `v0.17.0` upgrade plan at block `10511421` (`2026-08-18T19:37:21Z`), so both networks now run the same build and both serve `emissions/v10`. #183 updated `abci_version` for both, which is everything the drift check compares. The rest of the manifest, and the prose built on it, stayed on the pre-upgrade story. This PR includes #183's commit, so it supersedes it. ## What was wrong **`emissions_namespace` for mainnet still read `emissions/v9`**, which the network no longer routes: ``` $ curl -s https://allora-api.mainnet.allora.network/emissions/v9/params {"code":12,"message":"Not Implemented"} ``` Consequences, all live: - Every documented mainnet LCD path returned `501`, including both mainnet `curl` commands on `/build/forge/topics`. - The nightly topics job has failed every run since `2026-08-19T04:15Z`. `scripts/generateTopics.js` reads the namespace from this manifest: `GET https://allora-api.mainnet.allora.network/emissions/v9/next_topic_id failed after 3 attempts: HTTP 501 Not Implemented` - `/api/topics.json` is therefore frozen at `2026-07-31`, and drifting. Testnet is at 41 active topics; the published table says 39. **`deployed_version` for mainnet still read `v0.16.0`**, with `versions.json` to match. **`/reference/networks` and `/consume/rpc-grpc`** described a two-tier network where mainnet served single unlabeled values under `emissions/v9`. That premise no longer holds. ## Why it survived every check The release tag has a component and a gate behind it. The namespace had neither, so five pages hand-typed it and nothing connected the prose to the fact. `components/NetworkValue.tsx` gives it a single source, mirroring `components/Version.tsx`, with a matching renderer in `scripts/lib/docsPages.js` so the generated corpus carries the value rather than the tag. ## Stopping the recurrence `scripts/checkNetworkDrift.js` now probes `<lcd>/emissions/v<N>/params` upward from the recorded namespace and takes the highest routed one as what the network serves. Two requests in the steady state. A namespace move is written to the manifest like `abci_version` is, and reported in the PR body as the release upgrade it is, naming the `deployed_version` each network still records instead of mentioning the field in passing. Probing the LCD makes it a fetch target, so `hostsOf` derives the allowlist from `lcd` as well as `rpc`, under the same own-property and type discipline. The URL vetting is now shared rather than copied. `abciInfoUrl` keeps its signature and its messages. `scripts/checkVersionStrings.js` covers the other half. A namespace inside an endpoint URL is judged against the network that URL names, so a testnet path is caught while testnet is a release ahead and mainnet is legitimately still on the older one. A namespace in prose is judged against the lowest any network serves. Both are derived from the manifest, so there is no list to maintain. A source-tree path in a pinned permalink (`x/emissions/proto/emissions/v1/reputer.proto`) is a protobuf package, not a REST namespace, and is left alone. ## One decision for review `deployed_version` is set to `v0.17.0`, not `v0.17.1`. Both networks report build `HEAD-b6104eda6b2b009ea0714d2f724d53f4f0365fc0`, which is #982, the `v0.17.1` hotfix candidate. But `v0.17.1` is still a draft release and its plan never ran: ``` $ curl -s .../cosmos/upgrade/v1beta1/applied_plan/v0.17.1 {"height":"0"} $ curl -s .../cosmos/upgrade/v1beta1/applied_plan/v0.17.0 {"height":"10511421"} ``` If you would rather name the running binary, say so and I will change `networks.json` and `versions.json` together. ## Verification - `npm run build` passes, 61/61 pages prerendered. Rendered `/reference/networks` shows `emissions/v10` for both networks and no `emissions/v9`. - `yarn testdrift`: 143/143 and 37/37. 17 new cases cover the namespace walk, the statuses (`501` and `404` are answers, `5xx` is not), and the namespace's path into a URL. - Replayed against the pre-fix manifest, the new drift check reports `mainnet: recorded emissions/v9 -> serves emissions/v10` and emits a body naming `mainnet still records deployed_version: v0.16.0`. - Against a simulated testnet-ahead divergence, the version gate flags stale testnet URLs and leaves correct mainnet URLs alone. Merging the first commit alone unbreaks the nightly topics job.
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.
The scheduled network drift check found that at least one Allora network is
reporting a different build over RPC than
public/api/networks.jsonrecords.abci_versionabci_infohttps://allora-rpc.testnet.allora.network/abci_infoHEAD-ac7ae1565bda7266fd741515e09faccf85bc8af1HEAD-b6104eda6b2b009ea0714d2f724d53f4f0365fc0https://allora-rpc.mainnet.allora.network/abci_infoHEAD-8cbbba6ebe15edad2bcf1adab72eb67cb4568a08HEAD-b6104eda6b2b009ea0714d2f724d53f4f0365fc0This PR updates
abci_versionfor the networks above.The
deployed_versionrelease tag is not changed automatically:abci_inforeports a build identifier rather than a release tag. Check the
allora-chain releases
and, if a new release is live, update
deployed_version(and theemissions_namespaceif the upgrade bumped the emissions module) in this PRbefore merging.
If you do change
deployed_version, change the matchingchain_<network>keyin
public/api/versions.jsonin the same commit —yarn checkversionsfailswhile the two files disagree.
Summary by cubic
Aligns
public/api/networks.jsonwith builds reported over RPC to remove network version drift. Testnetabci_versionchanged from HEAD-ac7ae1565bda7266fd741515e09faccf85bc8af1 to HEAD-b6104eda6b2b009ea0714d2f724d53f4f0365fc0; mainnet from HEAD-8cbbba6ebe15edad2bcf1adab72eb67cb4568a08 to HEAD-b6104eda6b2b009ea0714d2f724d53f4f0365fc0.abci_infoat the RPC endpoints matches the new hash for testnet and mainnet.deployed_version(andemissions_namespaceif needed) in this PR.deployed_version, also update the matchingchain_<network>inpublic/api/versions.jsonto keepyarn checkversionspassing.Written for commit 9c4da90. Summary will update on new commits.