Asset Service Settings
Related Topic: Asset Service
Configuration Settings
| Setting |
Type |
Default |
Environment Variable |
Usage |
| APIPrefix |
string |
"/api/v1" |
asset_apiPrefix |
URL prefix for API endpoints |
| CentrifugeListenAddress |
string |
":8892" |
asset_centrifugeListenAddress |
WebSocket server binding address |
| CentrifugeDisable |
bool |
false |
asset_centrifuge_disable |
Disables WebSocket server |
| HTTPAddress |
string |
"http://localhost:8090/api/v1" |
asset_httpAddress |
Required when Centrifuge enabled - Must be non-empty and valid URL format |
| HTTPListenAddress |
string |
":8090" |
asset_httpListenAddress |
CRITICAL - HTTP server binding (fails during Init() if empty) |
| HTTPPort |
int |
8090 |
ASSET_HTTP_PORT |
UNUSED - HTTPListenAddress is used instead |
| HTTPPublicAddress |
string |
"" |
asset_httpPublicAddress |
UNUSED - Reserved for future use |
| SignHTTPResponses |
bool |
false |
asset_sign_http_responses |
Adds X-Signature header (requires P2P.PrivateKey, non-fatal if invalid) |
| EchoDebug |
bool |
false |
ECHO_DEBUG |
Enables verbose logging and request middleware |
Concurrency Settings
| Setting |
Type |
Default |
Environment Variable |
Usage |
| ConcurrencyGetTransaction |
int |
0 |
asset_concurrency_get_transaction |
Rate limit for GetTransaction (0=unlimited, -1=NumCPU, >0=exact) |
| ConcurrencyGetTransactionMeta |
int |
0 |
asset_concurrency_get_transaction_meta |
Rate limit for GetTransactionMeta |
| ConcurrencyGetSubtreeData |
int |
0 |
asset_concurrency_get_subtree_data |
Rate limit for GetSubtreeData |
| ConcurrencyGetSubtreeDataReader |
int |
0 |
asset_concurrency_get_subtree_data_reader |
Rate limit for GetSubtreeDataReader |
| ConcurrencyGetSubtreeTransactions |
int |
0 |
asset_concurrency_get_subtree_transactions |
Rate limit for GetSubtreeTransactions |
| ConcurrencyGetSubtreeExists |
int |
0 |
asset_concurrency_get_subtree_exists |
Rate limit for GetSubtreeExists |
| ConcurrencyGetSubtreeHead |
int |
0 |
asset_concurrency_get_subtree_head |
Rate limit for GetSubtreeHead |
| ConcurrencyGetUtxo |
int |
0 |
asset_concurrency_get_utxo |
Rate limit for GetUtxo |
| ConcurrencyGetLegacyBlockReader |
int |
-1 |
asset_concurrency_get_legacy_block_reader |
Rate limit for GetLegacyBlockReader (default: NumCPU) |
Concurrency Control:
0 = Unlimited concurrency (no rate limiting)
-1 = Dynamic limit based on runtime.NumCPU()
>0 = Exact concurrency limit
Global Settings
| Setting |
Type |
Default |
Environment Variable |
Usage |
| SecurityLevelHTTP |
int |
0 |
securityLevelHTTP |
0=HTTP, non-zero=HTTPS |
| ServerCertFile |
string |
"" |
server_certFile |
TLS certificate file (required for HTTPS) |
| ServerKeyFile |
string |
"" |
server_keyFile |
TLS key file (required for HTTPS) |
| StatsPrefix |
string |
"gocore" |
stats_prefix |
URL prefix for gocore stats endpoints |
| Dashboard.Enabled |
bool |
false |
N/A |
Enables dashboard UI and authentication |
| P2P.PrivateKey |
string |
"" |
p2p_private_key |
Hex-encoded Ed25519 key for response signing |
Configuration Dependencies
Centrifuge WebSocket Server
CentrifugeDisable = false enables WebSocket server
CentrifugeListenAddress must be non-empty
HTTPAddress must be non-empty and valid URL format (validated via url.Parse(), fails Init() if invalid)
HTTP Response Signing
SignHTTPResponses = true enables signing
- Requires
P2P.PrivateKey (hex-encoded Ed25519 format)
- Invalid P2P.PrivateKey logs error but service continues without signing (non-fatal)
- Adds
X-Signature header to responses
HTTPS Support
SecurityLevelHTTP != 0 enables HTTPS
- Both
ServerCertFile and ServerKeyFile required
- Validated during Start(), fails if missing
Service Dependencies
| Dependency |
Interface |
Usage |
| UTXOStore |
utxo.Store |
UTXO-related API endpoints |
| TxStore |
blob.Store |
Transaction data access |
| SubtreeStore |
blob.Store |
Subtree data access |
| BlockPersisterStore |
blob.Store |
Block data access |
| BlockchainClient |
blockchain.ClientI |
Blockchain operations, FSM state, waits for FSM transition from IDLE |
| BlockvalidationClient |
blockvalidation.Interface |
Block invalidation/revalidation endpoints |
| P2PClient |
p2p.ClientI |
Peer registry and catchup status endpoints |
Validation Rules
| Setting |
Validation |
Error |
When Checked |
| HTTPListenAddress |
Must not be empty |
"no asset_httpListenAddress setting found" |
During Init() |
| HTTPAddress |
Must be valid URL when Centrifuge enabled |
"asset_httpAddress not found in config" |
During Init() |
| ServerCertFile |
Must exist when SecurityLevelHTTP != 0 |
"server_certFile is required for HTTPS" |
During Start() |
| ServerKeyFile |
Must exist when SecurityLevelHTTP != 0 |
"server_keyFile is required for HTTPS" |
During Start() |
Configuration Examples
HTTP Configuration
asset_httpListenAddress=:8090
asset_apiPrefix=/api/v1
HTTPS Configuration
securityLevelHTTP=1
server_certFile=/path/to/cert.pem
server_keyFile=/path/to/key.pem
asset_httpListenAddress=:8090
Centrifuge WebSocket
asset_centrifuge_disable=false
asset_centrifugeListenAddress=:8892
asset_httpAddress=http://localhost:8090/api/v1
HTTP Response Signing
asset_sign_http_responses=true
p2p_private_key=<hex-encoded-ed25519-private-key>
Stats Endpoints
stats_prefix=/stats/
# Registers: /stats/stats, /stats/reset, /stats/*