Closed PaulVMo closed 3 years ago
To keep this simple can I propose we just introduce consensus_failure_member
? I'm not sure that you'd want to search actors for those specifics vs just getting the transaction once you know a validator was an actor in it and figuring it out from there.
Given that penalties age out of the ETL, I believe it will be useful to differentiate between failed and successful members in the transaction actors. One example, community members have been reporting on types of failures on the DeWi Validator dashboard. it would be simpler to query a single source (transaction actors) to get this than have to join with the transaction. That said, i know that makes the backfill harder. The priority is differentiating consensus failure from consensus election.
The "transaction actor" table includes members of blockchain_txn_consensus_group_failure_v1 as "consensus_member" actor type which is the same as blockchain_txn_consensus_group_v1. Considering that consensus group failure txn represents a group that never made it into consensus group, the actor value should be changed to differentiate these actors from elected members. For example, actor = "consensus_member" is one way to count how many times a validator is in consensus. However, the number is currently skewed due to the failure members being included.
As one suggestion, "consensus_failure_member" and "consensus_failure_failed_member" could be used for the Members and FailedMembers in the transaction.
https://github.com/helium/blockchain-etl/blob/2dcfc42279cf5e82f5b22e3bab6e899c6d078007/src/be_db_txn_actor.erl#L359