7.3 Validator Graffiti
To personalize your validator's appearance, you can assign a custom graffiti thats publically displayed on the consensus slot page. Adding graffiti to a block gives validators a unique way to mark their contributions to the network. The content of the graffiti can vary greatly. Some validators might use this space to include their validator name or identifier, while others might use it for fun.
Within an EVM-blockchain, the graffiti refers to a customizable field where validators can inscribe a short message of up to 32 bytes into the block's metadata. These messages are permanently stored on the blockchain. Each ASCII character uses 1 byte, but special characters or emojis can up take more.
Although the graffiti allows for freedom of expression, it should be used responsibly. It's part of the blockchain's permanent record and repeated with every block proposal. The community generally encourages respectful and appropriate usage.
Check if your message is within the byte limit before attaching it to the client. Emojis take up several bytes.
The following steps are performed on your 📟 node server.
1. Stop Node Operation​
Depending on your setup method, there are different ways to stop your node before setting a graffiti.
- LUKSO CLI
- Service Automation
cd <lukso-working-directory>
lukso stop
Exchange <lukso-working-directory>
with the path of the node folder.
sudo systemctl stop lukso-validator
Force Client Shutdown
- Geth
- Erigon
- Nethermind
- Besu
- Teku
- Nimbus-Eth2
- Lighthouse
- Prysm
sudo pkill geth
sudo pkill erigon
sudo pkill nethermind
sudo pkill besu
sudo pkill teku
sudo pkill nimbus_beacon_node
sudo pkill nimbus_validator_client
sudo pkill lighthouse
The Lighthouse client uses a single binary for both the consensus and validator processes.
sudo pkill prysm
sudo pkill validator
2. Add Validator Graffiti​
You can either set the graffiti via startup flags or persistently within the configuration files of your execution client. If you want to set a temporary graffiti, using the flag is recommended, as it will only persist until the next restart of the node.
- Setting a Startup Flag
- Modifying the Client Configuration
Depending on your setup method, there are different ways to pass down the graffiti using the LUKSO CLI.
- LUKSO CLI Node
- LUKSO CLI Validator
- Service Automation
Every consensus client has a individual flag to set the graffiti during startup.
- Prysm
- Teku
- Lighthouse
- Nimbus-Eth2
cd <lukso-working-directory>
# Start the Mainnet Node with Custom Graffiti
lukso start --checkpoint-sync --prysm-graffiti "<your-graffiti>"
# Start the Testnet Node with Custom Graffiti
lukso start --testnet --checkpoint-sync --prysm-graffiti "<your-graffiti>"
cd <lukso-working-directory>
# Start the Mainnet Node with Custom Graffiti
lukso start --checkpoint-sync --teku-validators-graffiti="<your-graffiti>"
# Start the Testnet Node with Custom Graffiti
lukso start --testnet --checkpoint-sync ---teku-validators-graffiti="<your-graffiti>"
cd <lukso-working-directory>
# Start the Mainnet Node with Custom Graffiti
lukso start --checkpoint-sync --lighthouse-graffiti "<your-graffiti>"
# Start the Testnet Node with Custom Graffiti
lukso start --testnet --checkpoint-sync --lighthouse-graffiti "<your-graffiti>"
cd <lukso-working-directory>
# Start the Mainnet Node with Custom Graffiti
lukso start --checkpoint-sync --nimbus2-graffiti="<your-graffiti>"
# Start the Testnet Node with Custom Graffiti
lukso start --testnet --checkpoint-sync --nimbus2-graffiti="<your-graffiti>"
The following properties need to be exchanged:
<lukso-working-directory>
with the path of the node folder<your-graffiti>
with the custom graffiti of your node.
After the clients were started, verify that their services are still up.
sudo lukso status
Every consensus client has a individual flag to set the graffiti during startup.
- Prysm
- Teku
- Lighthouse
- Nimbus-Eth2
cd <lukso-working-directory>
# Start the Mainnet Validator Node with Custom Graffiti
lukso start --validator --transaction-fee-recipient "<your-fee-recipient-address>" --checkpoint-sync --prysm-graffiti "<your-graffiti>"
# Start the Testnet Validator Node with Custom Graffiti
lukso start --testnet --validator --transaction-fee-recipient "<your-fee-recipient-address>" --checkpoint-sync --prysm-graffiti "<your-graffiti>"
cd <lukso-working-directory>
# Start the Mainnet Validator Node with Custom Graffiti
lukso start --validator --transaction-fee-recipient "<your-fee-recipient-address>" --checkpoint-sync --teku-validators-graffiti="<your-graffiti>"
# Start the Testnet Validator Node with Custom Graffiti
lukso start --testnet --validator --transaction-fee-recipient "<your-fee-recipient-address>" --checkpoint-sync --teku-validators-graffiti="<your-graffiti>"
cd <lukso-working-directory>
# Start the Mainnet Validator Node with Custom Graffiti
lukso start --validator --transaction-fee-recipient "<your-fee-recipient-address>" --checkpoint-sync --lighthouse-graffiti "<your-graffiti>"
# Start the Testnet Validator Node with Custom Graffiti
lukso start --testnet --validator --transaction-fee-recipient "<your-fee-recipient-address>" --checkpoint-sync --lighthouse-graffiti "<your-graffiti>"
cd <lukso-working-directory>
# Start the Mainnet Validator Node with Custom Graffiti
lukso start --validator --transaction-fee-recipient "<your-fee-recipient-address>" --checkpoint-sync --nimbus2-graffiti="<your-graffiti>"
# Start the Testnet Validator Node with Custom Graffiti
lukso start --testnet --validator --transaction-fee-recipient "<your-fee-recipient-address>" --checkpoint-sync --nimbus2-graffiti="<your-graffiti>"
The following properties need to be exchanged:
<lukso-working-directory>
with the path of the node folder<your-fee-recipient-address>
with the wallet address receiving staking profits<your-graffiti>
with the custom graffiti of your node.
After the clients were started, verify that their services are still up.
sudo lukso status
Open the startup script within your node directory with your preferred text editor.
- Vim
- Nano
sudo vim <lukso-working-directory>/static/lukso_startup.sh
sudo nano <lukso-working-directory>/static/lukso_startup.sh
Exchange <lukso-working-directory>
with the path to the node folder.
Add the graffiti flag as a new line to the start command, then save and exit the file.
- Prysm
- Teku
- Lighthouse
- Nimbus-Eth2
exec /usr/local/bin/lukso start \
--validator \
--validator-wallet-password ./static/<your-generic-password-file> \
--transaction-fee-recipient "<your-fee-recipient-address>" \
--checkpoint-sync \
--geth-graffiti "<your-graffiti>"
exec /usr/local/bin/lukso start \
--validator \
--validator-wallet-password ./static/<your-generic-password-file> \
--transaction-fee-recipient "<your-fee-recipient-address>" \
--checkpoint-sync \
--teku-validators-graffiti="<your-graffiti>"
exec /usr/local/bin/lukso start \
--validator \
--validator-wallet-password ./static/<your-generic-password-file> \
--transaction-fee-recipient "<your-fee-recipient-address>" \
--checkpoint-sync \
--lighthouse-graffiti "<your-graffiti>"
exec /usr/local/bin/lukso start \
--validator \
--validator-wallet-password ./static/<your-generic-password-file> \
--transaction-fee-recipient "<your-fee-recipient-address>" \
--checkpoint-sync \
--nimbus2-graffiti="<your-graffiti>"
After the startup script was updated, you can restart the node by executing the related service.
sudo systemctl start lukso-validator
Depending on your consensus client, the graffiti can be set with different properties.
- Prysm
- Teku
- Lighthouse
- Nimbus-Eth2
Open the configuration file using your preferred text editor.
- Vim
- Nano
cd <lukso-working-directory>/configs/<network>/prysm/
vim validator.yaml
cd <lukso-working-directory>/configs/<network>/prysm/
nano validator.yaml
Open the configuration file using your preferred text editor.
- Vim
- Nano
cd <lukso-working-directory>/configs/<network>/teku/
vim validator.yaml
cd <lukso-working-directory>/configs/<network>/teku/
nano validator.yaml
Open the configuration file using your preferred text editor.
- Vim
- Nano
cd <lukso-working-directory>/configs/<network>/lighthouse/
vim validator.toml
cd <lukso-working-directory>/configs/<network>/lighthouse/
nano validator.toml
Open the configuration file using your preferred text editor.
- Vim
- Nano
cd <lukso-working-directory>/configs/<network>/nimbus2/
vim validator.toml
cd <lukso-working-directory>/configs/<network>/nimbus2/
nano validator.toml
The following properties need to be exchanged:
<lukso-working-directory>
with the path to the node folder.<network>
with the name of your node's network.
Add the graffiti as a new line within the settings, then save and exit the file.
- Prysm
- Teku
- Lighthouse
- Nimbus
Add the graffiti as a new line at the end of the file.
graffiti: '<your-graffiti>'
Add the validators-graffiti as a new line at the end of the file.
validators-graffiti: 'your-graffiti'
Add the graffiti as a new line at the end of the file.
graffiti: "<your-graffiti>"
Add the graffiti as a new line at the end of the file.
graffiti = "<your-graffiti>"
Exchange <your-graffiti>
with the custom graffiti of your node.
Ensure there are no missing spaces, characters or unintended linebreaks before saving the configuration file.
Depending on your setup method, there are different ways to start your node after setting the graffiti.
- LUKSO CLI Node
- LUKSO CLI Validator
- Service Automation
cd <lukso-working-directory>
lukso start --checkpoint-sync
Exchange <lukso-working-directory>
with the path of the node folder.
cd <lukso-working-directory>
lukso start --validator --transaction-fee-recipient "<your-fee-recipient-address>" --checkpoint-sync
The following properties need to be exchanged:
<lukso-working-directory>
with the path of the node folder<your-fee-recipient-address>
with the wallet address receiving staking profits
sudo systemctl start lukso-validator
After the clients were started, verify that their services are still up.
sudo lukso status