Skip to content

Append client version info to user graffiti by default#9313

Open
chong-he wants to merge 13 commits into
sigp:unstablefrom
chong-he:append-graffiti-default
Open

Append client version info to user graffiti by default#9313
chong-he wants to merge 13 commits into
sigp:unstablefrom
chong-he:append-graffiti-default

Conversation

@chong-he
Copy link
Copy Markdown
Member

@chong-he chong-he commented May 18, 2026

Issue Addressed

Closes issue #9287

Additional Info

By default, append client version info by including the client code and some commit hash of the version, see: https://hackmd.io/@wmoBhF17RAOH2NZ5bNXJVg/BJX2c9gja

The exact implementation on how to append the client version info is different from other clients, e.g., Teku: https://docs.teku.consensys.io/reference/cli#validators-graffiti-client-append-format

I think that should be ok, as long as the appended info contains the EL, CL and the version (commit hash).

@chong-he chong-he marked this pull request as ready for review May 18, 2026 03:55
@chong-he chong-he added val-client Relates to the validator client binary ready-for-review The code is ready for review backwards-incompat Backwards-incompatible API change labels May 18, 2026

#[clap(
long,
requires = "graffiti",
Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remove this requires, this is for users who does not want to have any graffiti at all, so they can use --graffiti-append false without needing the --graffiti flag

@michaelsproul michaelsproul added the v8.2.0 2026 Q2/Q3 new release label May 21, 2026
&randao_reveal,
graffiti.as_ref(),
SkipRandaoVerification::No,
SkipRandaoVerification::Yes,
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
SkipRandaoVerification::Yes,
SkipRandaoVerification::No,

Should leave as is

requires = "graffiti",
help = "When used, client version info will be prepended to user custom graffiti, with a space in between. \
help = "When used, client version info will be appended to user custom graffiti, with a space in between. \
This should only be used with a Lighthouse beacon node.",
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should tweak this to say:

This should only be set to false when using a Lighthouse beacon node.

And something about how the default behaviour is to append.

#[test]
fn graffiti_append_true_flag() {
CommandLineTest::new()
.flag("graffiti-append", Some("true"))
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also need to test .flag("graffiti-append", Some("true")) which corresponds to just --graffiti-append. Some people might be using that from their old config.

## Automatically append client version info to user graffiti

In the interest of obtaining client diversity data, Lighthouse will by default automatically append client version info
to user graffiti in the proposed blocks.
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
to user graffiti in the proposed blocks.
to user graffiti in proposed blocks.

`This is my graffiti string yo yo`

To opt out from this, use the flag `--graffiti-append false` on the validator client. This will retain your own
graffiti when proposing a block, without appending any client version info.
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should highlight that this ONLY works with Lighthouse BNs

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

backwards-incompat Backwards-incompatible API change ready-for-review The code is ready for review v8.2.0 2026 Q2/Q3 new release val-client Relates to the validator client binary

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants