-
Notifications
You must be signed in to change notification settings - Fork 19
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
GET /eth/v1/validator/{pubkey}/graffiti
clarification
#77
Comments
Based on previous discussion on this, I would say just return the graffiti as set by the user, without appending any data that might be implementation specific.
Regarding (2), I just added that field in graffiti API to be inline with other APIs. I would have to dig through old PRs to give you context why the pubkey is part of the response in the first place. Apparently there was some discussion on discord around this #28, maybe @rolfyone can shed some light on it |
looks like we removed it as redundant and just made it optional rather than creating a new api... Makes enough sense, basically I'd pretend its not there, but don't fail if it is. re. the first point, I guess one thing would be the engine api change to allow us to markup the graffiti with version data... So if teku would use graffiti: "graffiti TKXXXXBUYYYY" the user has set just "graffiti", we'd just return "graffiti"... and into the block would appear the full string... That's not confusing? |
Depends on how people are using the APIs and if they use GET at all, it is likely just informational anyways. For example, rocketpool allows to set custom graffiti and only shows the custom value in their UI, but will wrap it "on the fly" and you will end up with something like
Both cases could be potentially confusing depending on user expectations. I am not a fan of modifying the graffiti of the user if it's set explicitly, or at a minimum, if it's done it has to be opt-in so the user should be aware that the graffiti set via CLI (or API) is not what will be used during proposal. I had this comment in the description previously (e0332eb)
which would have made it clear that you should return "graffiti TKXXXXBUYYYY" but there was pushback to add any specifics about what graffiti will be used during block proposal. |
Regarding returning the full string incl. client info on the keymanager API, I am wondering how we would even do this technically as the graffiti is configured on the validator client but the extra client info is appended by the beacon node "on the fly" during proposal. If the beacon node is allowed to modify the graffiti, the validator client will not know what graffiti will be used in the end, it can ask the beacon node, but this gets complicated pretty quickly if you have multiple beacon nodes with different ELs connected. Considering this, it is likely the best to just return the graffiti as it was set by the user which might or might not end up as is in the next proposal depending on if the beacon nodes modifies it or not. |
A couple of scenarios require clarification:
"Arbitrary data to set in the graffiti field of BeaconBlockBody"
. Should we be returning the exact graffiti that will be used when creating a block including the node info appended to the graffiti? Or should we just be returning the graffiti that was set / system wide default depending on the situation?For context, Teku appends consensus layer (CL) and execution layer (EL) clients' information to the validator graffiti. More details are linked here: validators-graffiti-client-append-format
This clarification relates to whether the graffiti returned from the GET should include this appended format, or just the set graffiti, without the appended information.
pubkey
is described as an optional field. In what case would this be empty, as we will always have the value from the path parameter?The text was updated successfully, but these errors were encountered: