Validator Service Settings
Related Topic: Validator Service
Configuration Settings
| Setting |
Type |
Default |
Environment Variable |
Usage |
| GRPCAddress |
string |
"localhost:8081" |
validator_grpcAddress |
gRPC client connections |
| GRPCListenAddress |
string |
":8081" |
validator_grpcListenAddress |
CRITICAL - gRPC server binding, service only starts if not empty |
| KafkaWorkers |
int |
0 |
validator_kafkaWorkers |
Kafka worker thread configuration |
| SendBatchSize |
int |
100 |
validator_sendBatchSize |
Batch processing size |
| SendBatchTimeout |
int |
2 |
validator_sendBatchTimeout |
Batch processing timeout |
| SendBatchWorkers |
int |
10 |
validator_sendBatchWorkers |
Batch worker thread count |
| BlockValidationDelay |
int |
0 |
validator_blockvalidation_delay |
Block validation delay |
| BlockValidationMaxRetries |
int |
5 |
validator_blockvalidation_maxRetries |
Block validation retry limit |
| BlockValidationRetrySleep |
string |
"2s" |
validator_blockvalidation_retrySleep |
Block validation retry delay |
| VerboseDebug |
bool |
false |
validator_verbose_debug |
CRITICAL - Debug logging control for validation operations |
| HTTPListenAddress |
string |
"" |
validator_httpListenAddress |
CRITICAL - HTTP server binding, health checks only run if not empty |
| HTTPAddress |
*url.URL |
"" |
validator_httpAddress |
HTTP client connections |
| HTTPRateLimit |
int |
1024 |
validator_httpRateLimit |
CRITICAL - HTTP request rate limiting |
| KafkaMaxMessageBytes |
int |
1048576 |
validator_kafka_maxMessageBytes |
Kafka message size limits |
| UseLocalValidator |
bool |
false |
useLocalValidator |
CRITICAL - Local vs remote validator deployment mode |
Configuration Dependencies
gRPC Server Management
- Service only starts if
GRPCListenAddress is not empty
- Health checks are conditional on gRPC server configuration
HTTP Server Management
- HTTP server only starts if
HTTPListenAddress is not empty
- Rate limiting applied when HTTP server is enabled
- Uses
HTTPRateLimit for middleware configuration
Debug Logging
- When
VerboseDebug = true, provides detailed logging for validation operations
- Controls logging in block assembly interactions
Batch Processing
SendBatchSize, SendBatchTimeout, and SendBatchWorkers work together
- Controls transaction batch processing performance
Block Validation Retry Logic
BlockValidationMaxRetries, BlockValidationRetrySleep, and BlockValidationDelay control resilience
- Manages block validation failure recovery
Service Dependencies
| Dependency |
Interface |
Usage |
| UTXOStore |
utxo.Store |
CRITICAL - Transaction input validation and double-spend prevention |
| BlockchainClient |
blockchain.ClientI |
CRITICAL - Blockchain operations and block data |
| BlockAssemblyClient |
blockassembly.ClientI |
CRITICAL - Sending validated transactions to mining |
| ValidatorTxsConfig |
*url.URL |
CRITICAL - Kafka-based transaction validation messaging |
Validation Rules
| Setting |
Validation |
Impact |
| GRPCListenAddress |
Service startup conditional |
Service availability |
| HTTPListenAddress |
HTTP server startup conditional |
API availability |
| VerboseDebug |
Controls logging verbosity |
Performance and diagnostics |
| HTTPRateLimit |
Rate limiting enforcement |
Resource protection |
Configuration Examples
Basic Configuration
validator_grpcListenAddress = ":8081"
validator_httpListenAddress = ":8080"
validator_sendBatchSize = 200
validator_sendBatchWorkers = 20
validator_httpRateLimit = 2048
Debug Configuration
validator_verbose_debug = true
validator_blockvalidation_maxRetries = 10