Skip to main content

MOBILE Utility Score Bug Post Mortem (Pre HIP-88)

· 2 min read

This post-mortem describes the events leading to an incorrect A portion of the DAO Utility Score for the MOBILE subnetwork, what happened, and what the team is doing moving forward.

Timeline

On July 21st, 2023, MOBILE Subscriber Mapping launched. This introduced a new rewardable entity into the MOBILE ecosystem.

Helium Oracles are powered by a data pipeline that runs over Proof-of-Coverage and network usage data. After generating rewards shares, the lifetime rewards for each entity are calculated and inserted into a Postgres database. When a user initiates a claim, the Oracle service then reads the values from the database and signs the claim transaction to set the lifetime rewards for that entity on-chain.

This database also keeps track of the last time an entity received rewards. Pre HIP-88, this data was used to push active device counts on-chain on Solana via Switchboard. This was a simple endpoint which is still exposed at:

https://mobile-rewards.oracle.helium.io/active-devices

and

https://iot-rewards.oracle.helium.io/active-devices

This endpoint selects the count of rewardable entities that received rewards in the last 30 days.

Due to the introduction of MOBILE subscribers, this service began counting subscribers as active devices, as they were receiving rewards; however, subscribers should not be counted as active devices.

On September 12th, 2023, a hotfix was deployed to the MOBILE oracle to filter out MOBILE subscribers. This corrected the utility score going forward.

Next Steps

Immediate Fix

The immediate fix for this, deployed September 12th, was to correct the active device query to filter out MOBILE subscribers. This was deployed shortly after we recognized the error.

HIP 88

Due to the implementation of HIP-88, tracking onboarding fees per device, this problem can no longer happen again. Instead, a new oracle sets each device on-chain as active or inactive based on the generated rewards shares.

Impact

The MOBILE utility score was slightly inflated from July 21st - September 12th, as MOBILE subscribers counted towards the Active Device (A) portion of the utility score.