helium / blockchain-etl

Blockchain follower that follows and stores the Helium blockchain
Apache License 2.0
64 stars 37 forks source link

Change transaction actor type for consensus_failure_txn_v1 #205

Closed PaulVMo closed 3 years ago

PaulVMo commented 3 years ago

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

madninja commented 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.

PaulVMo commented 3 years ago

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.