Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
d68f755
docs: Update setup guide for v0.4.0
dohernandez Dec 3, 2025
54ebc23
docs: Update changelog for v0.4.0 release with new features, bug fixe…
dohernandez Dec 3, 2025
3588514
docs: Update configuration for GenLayer Chain and improve comments
dohernandez Dec 3, 2025
2f5e82f
docs: Update setup guide to include Docker networking configuration f…
dohernandez Dec 3, 2025
304484d
docs: Update Node version in setup guide to v0.4.0
dohernandez Dec 3, 2025
bd89b62
docs: Update Docker image version to v0.4.0 in setup guide
dohernandez Dec 3, 2025
ca183b5
docs: Update GenLayer Chain RPC and WebSocket URLs to placeholders in…
dohernandez Dec 3, 2025
d22a41d
docs: Update changelog and version documentation to reflect integrati…
dohernandez Dec 3, 2025
963b7fe
docs: Clarify backup instructions for operator key in upgrade guide
dohernandez Dec 3, 2025
9b6bd2e
docs: Update consensus contract addresses and genesis block number in…
dohernandez Dec 3, 2025
2adf003
docs: Update changelog and v0.4.0 documentation to include validator …
dohernandez Dec 4, 2025
8e4d1ab
docs: Update RPC URL placeholders in configuration and setup guide fo…
dohernandez Dec 4, 2025
237fea7
docs: Add section on overriding configuration with environment variab…
dohernandez Dec 4, 2025
15544eb
feat: use the new wizard
MuncleUscles Dec 4, 2025
0e7b5ca
fix: improve order and clarity
MuncleUscles Dec 4, 2025
2f511fb
docs: Clarifies validator owner address role
MuncleUscles Dec 4, 2025
83e837f
docs: Updates genlayer-cli docs for staking
MuncleUscles Dec 4, 2025
065a3a7
docs: fix sections
MuncleUscles Dec 4, 2025
c5a0bc3
docs: improve restore clarity
MuncleUscles Dec 4, 2025
ba526c3
docs: Adds staking documentation link
MuncleUscles Dec 4, 2025
ab12428
docs: operator key upgrade guide
MuncleUscles Dec 4, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
72 changes: 72 additions & 0 deletions content/validators/changelog/v0.4.0.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
## v0.4.0

### New features

- Integrate the latest GenLayer Consensus version v0.4 with Staking
- Introduce validator wallet
- Handle validator priming
- Finalize epochs
- Advance epochs when epochs finalize
- Handle automatic gas increase
- Implement ProcessIdleness and enhance event subscription
- Handle validator commit idleness for leader
- Implement leader idleness detection and rotation
- Add detailed ban information with epoch and permanent flag
- Handle unfinished transactions with batch finalization
- Add nonceSafe for granular transaction locking
- Add sanity check for operator address in validator wallet configuration
- Add missing fields from consensus transaction data to API response
- Add validator telemetry push monitoring
- Add actionable fix suggestions to WebDriver error messages in doctor command
- Add zkSync connectivity checks
- Add Staking Contract address comparison to doctor checks
- Add libertai as a new LLM provider
- Add transaction count metrics for consensus roles
- Implement consensus sync status metrics
- Add TimeoutsSet event router for dynamic timeout configuration
- Add enhanced transaction failure debugging with trace support
- Sync data with finalized and appeal started events
- Add timeout delay mechanism for RPC resilience
- Add status and blockNumber parameters to gen_call
- Enhance health endpoint with version info and validator with ban and permanent ban detection
- Update genvm version to v0.2.7
- Store and expose genvm execution information
- Add sign admin endpoint for genvm

### Bug fixes

- GenVM architecture on arm64
- Fix sync issue when there are no consensus events
- Use latest block instead of timestamp for transaction queries
- Update WebDriver check for Puppeteer implementation
- Resolve multi-transaction nonce issue
- Remove duplicated check logic and fix status check on specific block
- Leader rotation timeout and receipt cleanup
- Change transaction finalization to allow all nodes to finalize
- GenVM non determinism
- Add retry logic to prevent validator banning on transient errors
- GenVM sanity checks
- Cancel context and wait for group when genvm tester fails
- Decoding calldata into complex types
- Don't try activating already activated transactions
- Still process sync failed TX for DB consistency
- Add correct encoding for getState
- Only sync transactions with ResultCodeReturn and add sanity check
- Use block number for transaction data retrieval
- Validator votes idleness
- Leader idleness
- Accidental deadlock in genvm
- Lazy validators commit order

### Misc

- Simplify environment variable configuration using .env file
- Add environment variable override support for config values
- Update webdriver image to v0.0.9
- Update RPC and WebSocket endpoints in config.yaml.example
- Correct status for validatorTimeout after appeal time window
- Validate presence of abigen in dependency check
- Rename environment validation functions for clarity
- Use cockroachdb errors package for error handling
- Remove wallet.yaml file handling
- Rename archive to full
46 changes: 21 additions & 25 deletions content/validators/config.yaml
Original file line number Diff line number Diff line change
@@ -1,20 +1,13 @@
# rollup configuration
rollup:
zksyncurl: "TODO: Set your GenLayer Chain ZKSync HTTP RPC URL here" # ZKSync RPC URL
zksyncwebsocketurl: "TODO: Set your GenLayer Chain ZKSync WebSocket RPC URL here" # ZKSync WebSocket URL
genlayerchainrpcurl: "TODO: Set your GenLayer Chain ZKSync HTTP RPC URL here" # ZKSync RPC URL
genlayerchainwebsocketurl: "TODO: Set your GenLayer Chain ZKSync WebSocket RPC URL here" # ZKSync WebSocket URL
# consensus contracts configuration
consensus:
# Required addresses - these must be configured
contractmainaddress: "0xe30293d600fF9B2C865d91307826F28006A458f4" # ConsensusMain Smart Contract Address (REQUIRED)
contractdataaddress: "0x2a50afD9d3E0ACC824aC4850d7B4c5561aB5D27a" # ConsensusData Smart Contract Address (REQUIRED)

# DEPRECATED: The following addresses are auto-discovered from ConsensusMain.GetContracts()
# These fields will be removed in v0.4.0. If present, values are IGNORED and a deprecation warning is logged.
# contractmanageraddress: "0x0761ff3847294eb3234f37Bf63fd7F1CA1E840bB" # DEPRECATED - Auto-discovered from ConsensusMain
# contractidlenessaddress: "0xD1D09c2743DD26d718367Ba249Ee1629BE88CF33" # DEPRECATED - Auto-discovered from ConsensusMain
# contractstakingaddress: "0x31Cb4018ccB7d4F30419d367b6C5c7677AAE30E7" # DEPRECATED - Auto-discovered from ConsensusMain

genesis: 817855 # (Optional) Genesis block number for this consensus deployment. If not provided, it will be auto-detected by searching for the first log from the ConsensusMain contract.
# Asimov - Phase 4
contractmainaddress: "0x67fd4aC71530FB220E0B7F90668BAF977B88fF07" # ConsensusMain Smart Contract Address
contractdataaddress: "0xB6E1316E57d47d82FDcEa5002028a554754EF243" # ConsensusData Smart Contract Address
genesis: 4632386 # (Optional) Genesis block number for this consensus deployment. If not provided, it will be auto-detected by searching for the first log from the ConsensusMain contract.

# data directory
datadir: "./data/node"
Expand Down Expand Up @@ -44,12 +37,16 @@ logging:

# node configuration
node:
# Uncomment if the ID of the node is different from the consensus validator address.
# Uncomment if the ID of the node is different from the validator wallet address.
# It is used to identify the node in the network.
# id: "node"
# Mode can be "validator" or "archive".
# Mode can be "validator" or "full".
# Default value is "validator".
mode: "validator"
# Address of the ValidatorWallet contract (required for validator mode)
validatorWalletAddress: ""
# Address of the operator that owns the ValidatorWallet
operatorAddress: ""
admin:
port: 9155
rpc:
Expand All @@ -72,22 +69,21 @@ node:
eth_blockNumber: true
eth_getBlockByNumber: true
eth_getBlockByHash: true
eth_getBalance: true
eth_getTransactionCount: true
eth_getTransactionReceipt: true
eth_getLogs: true
eth_getCode: true
eth_sendRawTransaction: false
debug_icStateDump: false
eth_sendRawTransaction: true
zks_getTransaction: true
ops:
port: 9153 # Metrics port
endpoints:
metrics: true # Enable metrics endpoint
health: true # Enable health endpoint
balance: true # Enable balance endpoint

# genvm configuration
genvm:
bin_dir: ./third_party/genvm/bin
manage_modules: true # if true node will start genvm modules itself
root_dir: ./third_party/genvm
start_manager: true # if true node will start genvm manager itself
manager_url: http://127.0.0.1:3999
permits: # Leave empty for autodiscovery, put a number for updating genvm permits on startup

# Advanced configuration
merkleforest:
Expand All @@ -100,7 +96,7 @@ merkletree:

# metrics configuration
metrics:
interval: "15s" # Default interval for all collectors (can be overridden per collector)
interval: "15s" # Default interval for all collectors (can be overridden per collector)
# collectors:
# node:
# enabled: true
Expand Down
206 changes: 197 additions & 9 deletions pages/api-references/genlayer-cli.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -184,21 +184,209 @@ EXAMPLES:

### Network Management

Configure network settings.
Configure and view network settings.

```bash
USAGE:
genlayer network [network]
genlayer network set [network]
genlayer network info
genlayer network list

ARGUMENTS:
[network] Optional network name or alias to set. If omitted, displays an interactive selection menu.
Valid options: localnet, studionet, testnet-asimov
COMMANDS:
set [network] Set the network (interactive menu if network not specified)
info Show current network configuration and contract addresses
list List all available networks

EXAMPLES:
genlayer network set # Interactive selection menu
genlayer network set localnet # Set network to localnet
genlayer network set testnet-asimov # Set network to testnet-asimov
genlayer network info # Show current network details
genlayer network list # List available networks
```

### Account Management

Create and manage accounts with encrypted keystores.

```bash
USAGE:
genlayer account create [options]
genlayer account show [options]
genlayer account list
genlayer account use <name>
genlayer account remove <name>
genlayer account lock [options]
genlayer account unlock [options]
genlayer account export [options]
genlayer account import [options]
genlayer account send [options]

COMMANDS:
create Create a new account with encrypted keystore
show Show account details and balance
list List all accounts
use Set an account as active
remove Remove an account
lock Lock an account (remove cached private key)
unlock Unlock an account (cache private key in OS keychain)
export Export account to standard web3 keystore format
import Import account from keystore file or private key
send Send GEN tokens to another address

OPTIONS (create):
--name <name> Account name (default: "default")
--overwrite Overwrite existing account

OPTIONS (show):
--account <name> Account to show (default: active account)
--rpc <rpcUrl> RPC URL for balance lookup

OPTIONS (lock/unlock):
--account <name> Account to lock/unlock

OPTIONS (export):
--account <name> Account to export
--output <path> Output file path
--password <password> Password for exported keystore

OPTIONS (import):
--name <name> Name for imported account
--keystore <path> Path to keystore file
--private-key <key> Private key to import (alternative to keystore)

OPTIONS (send):
--to <address> Recipient address
--amount <amount> Amount to send (e.g., "1.5" or "1.5gen")
--account <name> Account to send from

EXAMPLES:
genlayer network # Interactive selection menu
genlayer network localnet # Set network to localnet
genlayer network studionet # Set network to studionet
genlayer network testnet-asimov # Set network to testnet-asimov
genlayer account create --name owner
genlayer account show
genlayer account show --account operator
genlayer account list
genlayer account use owner
genlayer account unlock --account owner
genlayer account export --account operator --output ./operator-keystore.json
genlayer account import --name backup --keystore ./backup.json
genlayer account send --to 0x123... --amount 100gen
```

### Staking Operations

Staking operations for validators and delegators on testnet.

```bash
USAGE:
genlayer staking wizard [options]
genlayer staking validator-join [options]
genlayer staking validator-deposit [options]
genlayer staking validator-exit [options]
genlayer staking validator-claim [options]
genlayer staking validator-prime [options]
genlayer staking validator-info [options]
genlayer staking set-operator [options]
genlayer staking set-identity [options]
genlayer staking delegator-join [options]
genlayer staking delegator-exit [options]
genlayer staking delegator-claim [options]
genlayer staking delegation-info [options]
genlayer staking epoch-info [options]
genlayer staking active-validators [options]
genlayer staking quarantined-validators [options]
genlayer staking banned-validators [options]

COMMANDS:
wizard Interactive wizard to become a validator
validator-join Join as a validator by staking tokens
validator-deposit Make an additional deposit as a validator
validator-exit Exit as a validator by withdrawing shares
validator-claim Claim validator withdrawals after unbonding period
validator-prime Prime a validator to prepare stake for next epoch
validator-info Get information about a validator
set-operator Change the operator address for a validator
set-identity Set validator identity metadata (moniker, website, socials)
delegator-join Join as a delegator by staking with a validator
delegator-exit Exit as a delegator by withdrawing shares
delegator-claim Claim delegator withdrawals after unbonding period
delegation-info Get delegation info for a delegator with a validator
epoch-info Get current epoch and staking parameters
active-validators List all active validators
quarantined-validators List all quarantined validators
banned-validators List all banned validators

OPTIONS (wizard):
--account <name> Account to use (skip selection)
--network <network> Network to use (skip selection)
--skip-identity Skip identity setup step

OPTIONS (validator-join):
--amount <amount> Amount to stake (e.g., "42000gen")
--operator <address> Operator address (defaults to signer)
--account <name> Account to use

OPTIONS (validator-deposit):
--amount <amount> Amount to deposit

OPTIONS (validator-exit):
--shares <shares> Number of shares to withdraw

OPTIONS (validator-prime):
--validator <address> Validator address to prime

OPTIONS (set-operator):
--validator <address> Validator wallet address
--operator <address> New operator address

OPTIONS (set-identity):
--validator <address> Validator wallet address
--moniker <name> Validator display name (required)
--website <url> Website URL
--description <text> Description
--twitter <handle> Twitter handle
--github <handle> GitHub handle

OPTIONS (delegator-join):
--validator <address> Validator to delegate to
--amount <amount> Amount to stake

OPTIONS (delegator-exit):
--validator <address> Validator to exit from
--shares <shares> Number of shares to withdraw

OPTIONS (delegation-info):
--validator <address> Validator address
--delegator <address> Delegator address (defaults to signer)

COMMON OPTIONS:
--network <network> Network to use (localnet, testnet-asimov)
--rpc <rpcUrl> RPC URL for the network
--staking-address <addr> Override staking contract address

EXAMPLES:
# Become a validator using the interactive wizard
genlayer staking wizard

# Join as validator manually
genlayer staking validator-join --amount 42000gen --operator 0x123...

# Check validator status
genlayer staking validator-info

# Set validator identity
genlayer staking set-identity --validator 0x123... --moniker "My Validator" --website "https://example.com"

# Delegate to a validator
genlayer staking delegator-join --validator 0x123... --amount 1000gen

# Check your delegation info
genlayer staking delegation-info --validator 0x123...

# Check epoch info
genlayer staking epoch-info

# List active validators
genlayer staking active-validators
```

### Keypair Management
Expand Down
Loading