-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathconfig.yaml
More file actions
151 lines (135 loc) · 5.84 KB
/
config.yaml
File metadata and controls
151 lines (135 loc) · 5.84 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
# ======================================================================================
# NODE IDENTITY RELATED CONFIGURATIONS
# ======================================================================================
id: "bootstrap_node_1"
# ======================================================================================
# LOGGER RELATED CONFIGURATIONS
# ======================================================================================
logger:
enabled: true
environment: development
level: debug
# ======================================================================================
# MDBX RELATED CONFIGURATIONS
# ======================================================================================
mdbx:
enabled: true
nodes:
- name: fdb
path: /tmp/
maxReaders: 4096
maxSize: 1024 # Maximum database size (1 TB)
minSize: 1 # Minimum database size (1 GB)
growthStep: 4096 # Growth step size (4 KB)
filePermissions: 0600 # File permissions for the database
# ======================================================================================
# NODE RELATED CONFIGURATION
# ======================================================================================
node:
# In blockchain world there is full node, light node, sequencer, validator, etc...
# This is practically the same concept have RBAC (Role-Based Access Control) and
# that is how node types are defined. Reusing this system to not pollute the system with
# multiple nodes and role types and making things even more confusing than it is.
roles:
- node
- sequencer
- validator
# ======================================================================================
# IDENTITY MANAGER RELATED CONFIGURATION
# ======================================================================================
# Identity manager is responsible for generating P2P, BLS, and other keys.
identity:
enabled: true # Enable or disable the identity manager.
basePath: /Users/nevio/.fdb/keystore # Path where keys are stored.
# ======================================================================================
# P2P NETWORKING RELATED CONFIGURATION
# ======================================================================================
networking:
peerId: "12D3KooWK2kJYjJZs23UCv9KqxNxgtu19xgipQsKbrXDsfsLestN"
listenAddrs: # Changed from single port to multiple listen addresses
- "/ip4/0.0.0.0/tcp/8432" # Listen on all TCP IPv4 interfaces
- "/ip6/::/tcp/8432" # Listen on all TCP IPv6 interfaces
- "/ip4/0.0.0.0/udp/8432" # Listen on all UDP IPv4 interfaces
- "/ip6/::/udp/8432" # Listen on all UDP IPv6 interfaces
protocolId: "/fdb/1.0.0" # Unique protocol identifier
bootstrapPeers:
- /ip4/127.0.0.1/tcp/8432/p2p/12D3KooWK2kJYjJZs23UCv9KqxNxgtu19xgipQsKbrXDsfsLestN # For bootstrap node it is here but will be ignored
bootstrapNode: true # Set to true if this node is the bootstrap node in the network.
mdns: true # Enable or disable Multicast DNS (mDNS) discovery.
enableRelay: true # Enable relay connections if needed.
interface_name: "en0" # Network interface name for eBPF (if applicable)
# ======================================================================================
# TRANSPORTS RELATED CONFIGURATIONS
# ======================================================================================
transports:
- type: dummy
enabled: false
config:
ipv4: 127.0.0.1
port: 4434
- type: quic
enabled: false
config:
ipv4: 127.0.0.1
port: 4433
tls:
insecure: true
key: ./data/certs/key.pem
cert: ./data/certs/cert.pem
- type: uds
enabled: false
config:
socket: "/tmp/fdb.sock"
- type: tcp
enabled: true
config:
ipv4: 127.0.0.1
port: 5011
tls:
insecure: true
key: ./data/certs/key.pem
cert: ./data/certs/cert.pem
- type: udp
enabled: false
config:
ipv4: 127.0.0.1
port: 5022
dtls:
insecure: true
key: ./data/certs/key.pem
cert: ./data/certs/cert.pem
# ======================================================================================
# RPC RELATED CONFIGURATIONS
# ======================================================================================
rpc:
poolMaxSize: 10_000
transport:
enabled: true
type: "tcp"
ipv4: 0.0.0.0
port: 8845
# ======================================================================================
# OBSERVABILITY CONFIGURATION (Metrics and Tracing)
# ======================================================================================
pprof:
- name: fdb
enabled: true
addr: "0.0.0.0:6065"
# ======================================================================================
# OBSERVABILITY CONFIGURATION (Metrics and Tracing)
# ======================================================================================
# Observability helps in monitoring system health, performance, and errors.
# It includes metrics (Prometheus) and tracing (OpenTelemetry).
observability:
metrics:
enable: true # Enable or disable metrics collection.
endpoint: "localhost:4317" # Endpoint for metrics collector.
exportInterval: 15s # Interval to export metrics data.
useTLS: false # Set this to false to disable TLS.
tracing:
enable: true # Enable or disable tracing.
endpoint: "localhost:4317" # Endpoint for tracing collector.
headers: {} # Additional headers for tracing requests.
sampler: "always_on" # Options: always_on, probability.
samplingRate: 0.1 # Sampling rate for probabilistic sampling.
useTLS: false # Set this to false to disable TLS.