-
Notifications
You must be signed in to change notification settings - Fork 428
Expand file tree
/
Copy pathapplication.conf
More file actions
365 lines (282 loc) · 11.8 KB
/
Copy pathapplication.conf
File metadata and controls
365 lines (282 loc) · 11.8 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
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
# Waves node settings in HOCON
# HOCON specification: https://github.com/lightbend/config/blob/master/HOCON.md
# Unless you know what you're doing, DO NOT use this file as your node's config.
# Use waves-sample.conf in the root of this repository instead.
include "network-defaults.conf"
include "node-kamon.conf"
waves {
# Node base directory
directory = ""
db {
directory = ${waves.directory}"/data"
store-transactions-by-address = true
store-invoke-script-results = true
store-state-hashes = false
# Limits the size of caches which are used during block validation. Lower values slightly decrease memory consumption,
# while higher values might increase node performance. Setting this value to 0 disables caching altogether.
max-cache-size = 100000
max-rollback-depth = 2000
remember-blocks = 3h
use-bloom-filter = false
}
# NTP server
ntp-server = "pool.ntp.org"
# P2P Network settings
network {
# Peers and blacklist storage file
file = ${waves.directory}"/peers.dat"
# String with IP address and port to send as external address during handshake. Could be set automatically if UPnP
# is enabled.
#
# If `declared-address` is set, which is the common scenario for nodes running in the cloud, the node will just
# listen to incoming connections on `bind-address:port` and broadcast its `declared-address` to its peers. UPnP
# is supposed to be disabled in this scenario.
#
# If declared address is not set and UPnP is not enabled, the node will not listen to incoming connections at all.
#
# If declared address is not set and UPnP is enabled, the node will attempt to connect to an IGD, retrieve its
# external IP address and configure the gateway to allow traffic through. If the node succeeds, the IGD's external
# IP address becomes the node's declared address.
#
# In some cases, you may both set `declared-address` and enable UPnP (e.g. when IGD can't reliably determine its
# external IP address). In such cases the node will attempt to configure an IGD to pass traffic from external port
# to `bind-address:port`. Please note, however, that this setup is not recommended.
# declared-address = "1.2.3.4:6863"
# Network address
bind-address = "0.0.0.0"
# Port number
port = 6863
# Node name to send during handshake. Comment this string out to set random node name.
# node-name = "default-node-name"
# Node nonce to send during handshake. Should be different if few nodes runs on the same external IP address. Comment this out to set random nonce.
# nonce = 0
# List of IP addresses of well known nodes.
known-peers = []
# How long the information about peer stays in database after the last communication with it
peers-data-residence-time = 1d
# How long peer stays in blacklist after getting in it
black-list-residence-time = 15m
# Breaks a connection if there is no message from the peer during this timeout
break-idle-connections-timeout = 5m
# How many network inbound network connections can be made
max-inbound-connections = 100
# Number of outbound network connections
max-outbound-connections = 100
# Number of connections from single host
max-single-host-connections = 3
# Timeout on network communication with other peers
connection-timeout = 30s
# Size of circular buffer to store unverified (not properly handshaked) peers
max-unverified-peers = 100
# If yes the node requests peers and sends known peers
enable-peers-exchange = yes
# If yes the node can blacklist incoming and outgoing connections to other nodes
enable-blacklisting = yes
# How often connected peers list should be broadcast
peers-broadcast-interval = 2m
# When accepting connection from remote peer, this node will wait for handshake for no longer than this value. If
# remote peer fails to send handshake within this interval, it gets blacklisted. Likewise, when connecting to a
# remote peer, this node will wait for handshake response for no longer than this value. If remote peer does not
# respond in a timely manner, it gets blacklisted.
handshake-timeout = 30s
# The node can't connect to suspended nodes
suspension-residence-time = 1m
# When a new transaction comes from the network, we cache it and doesn't push this transaction again when it comes
# from another peer.
# This setting setups a timeout to remove an expired transaction in the elimination cache.
received-txs-cache-timeout = 3m
upnp {
# Enable UPnP tunnel creation only if you router/gateway supports it. Useful if your node is running in home
# network. Completely useless if you node is in cloud.
enable = no
# UPnP timeouts
gateway-timeout = 7s
discover-timeout = 3s
}
# Logs incoming and outgoing messages
traffic-logger {
# Codes of transmitted messages to ignore. See MessageSpec.messageCode
ignore-tx-messages = [1, 2, 23, 25, 26, 29, 30]
# Codes of received messages to ignore. See MessageSpec.messageCode
ignore-rx-messages = [1, 2, 25]
}
}
# Wallet settings
wallet {
# Path to wallet file
file = ${waves.directory}"/wallet/wallet.dat"
# Password to protect wallet file
# password = "some string as password"
# The base seed, not an account one!
# By default, the node will attempt to generate a new seed. To use a specific seed, uncomment the following line and
# specify your base58-encoded seed.
# seed = "BASE58SEED"
}
# Blockchain settings
blockchain {
# Blockchain type. Could be TESTNET | MAINNET | CUSTOM. Default value is TESTNET.
type = TESTNET
# 'custom' section present only if CUSTOM blockchain type is set. It's impossible to overwrite predefined 'testnet' and 'mainnet' configurations.
custom {
include "custom-defaults.conf"
}
}
# New blocks generator settings
miner {
# Enable/disable block generation
enable = yes
# Required number of connections (both incoming and outgoing) to attempt block generation. Setting this value to 0
# enables "off-line generation".
quorum = 1
# Enable block generation only in the last block is not older the given period of time
interval-after-last-block-then-generation-is-allowed = 1d
# Mining attempts delay, if no quorum available
no-quorum-mining-delay = 5s
# Interval between microblocks
micro-block-interval = 2s
# Max amount of transactions in micro block
max-transactions-in-micro-block = 255
# Miner references the best microblock which is at least this age
min-micro-block-age = 2s
# Minimal block generation offset
minimal-block-generation-offset = 0
}
# Node's REST API settings
rest-api {
# Enable/disable REST API
enable = yes
# Network address to bind to
bind-address = "127.0.0.1"
# Port to listen to REST API requests
port = 6869
# Hash of API key string
api-key-hash = ""
# CORS headers returned with responses
cors-headers {
# HTTP headers that can be used during the external request
access-control-allow-headers = [ "Authorization", "Content-Type", "X-Requested-With", "Timestamp", "Signature" ]
# Origin that can access the response from requesting code.
# By default any websites are able to use HTTP API.
access-control-allow-origin = "origin-from-request"
# Allowed methods when accessing a resource
access-control-allow-methods = ["OPTIONS", "POST", "PUT", "GET", "DELETE"]
# Enable/disable exposing the response to the frontend JS code when the request's credentials mode is include
access-control-allow-credentials = yes
}
# Max number of transactions
# returned by /transactions/address/{address}/limit/{limit}
transactions-by-address-limit = 1000
distribution-address-limit = 1000
data-keys-request-limit = 1000
asset-details-limit = 100
blocks-request-limit = 100
# The limit of complexity of a function that is not Callable (/utils/script/evaluate)
evaluate-script-complexity-limit = 26000
# Max number of time-limited pool threads (script compile/decompile/estimate)
limited-pool-threads = 2
# Max number of heavy-request-processor pool threads (/transactions/address/{address}/limit/{limit} and others)
# When not configured explicitly, min(4, Runtime.getRuntime.availableProcessors() * 2) threads are used.
# heavy-request-processor-pool-threads = 8
# Minimum number of peers to accept transactions
minimum-peers = 1
}
# Nodes synchronization settings
synchronization {
# How many blocks could be rolled back if fork is detected. If fork is longer than this rollback is impossible.
max-rollback = 100
# Timeout to receive all requested blocks
synchronization-timeout = 60s
# Time to live for broadcast score
score-ttl = 90s
# Max baseTarget value. Stop node when baseTarget greater than this param. No limit if it is not defined.
# max-base-target = 200
# Settings for invalid blocks cache
invalid-blocks-storage {
# Maximum elements in cache
max-size = 30000
# Time to store invalid blocks and blacklist their owners in advance
timeout = 5m
}
# History replier caching settings
history-replier {
# Max microblocks to cache
max-micro-block-cache-size = 50
# Max blocks to cache
max-block-cache-size = 20
}
# Utx synchronizer caching settings
utx-synchronizer {
# Max microblocks to cache
network-tx-cache-size = 1000000
# Max scheduler threads
max-threads = 8
# Max pending queue size
max-queue-size = 5000
# Send transaction to peers on broadcast request even if it's already in utx-pool
allow-tx-rebroadcasting = yes
}
# MicroBlock synchronizer settings
micro-block-synchronizer {
# How much time to wait before a new request of a microblock will be done
wait-response-timeout = 2s
# How much time to remember processed microblock signatures
processed-micro-blocks-cache-timeout = 3m
# How much time to remember microblocks and their nodes to prevent same processing
inv-cache-timeout = 45s
}
}
# Unconfirmed transactions pool settings
utx {
# Pool size
max-size = 100000
# Pool size in bytes
max-bytes-size = 52428800 // 50 MB
# Pool size for scripted transactions
max-scripted-size = 5000
# Blacklist transactions from these addresses (Base58 strings)
blacklist-sender-addresses = []
# Allow transfer transactions from the blacklisted addresses to these recipients (Base58 strings)
allow-blacklisted-transfer-to = []
# Prioritize transactions from these addresses (Base58 strings)
fast-lane-addresses = []
# Allow transactions from smart accounts
allow-transactions-from-smart-accounts = true
# Allow skipping checks with highest fee
allow-skip-checks = true
# Allow full transaction validation while utx cleanup
force-validate-in-cleanup = true
}
features {
auto-shutdown-on-unsupported-feature = yes
supported = []
}
rewards {
# desired = 0
}
extensions = [
# com.wavesplatform.api.grpc.GRPCServerExtension
]
# How much time to wait for extensions' shutdown
extensions-shutdown-timeout = 5 minutes
}
# WARNING: No user-configurable settings below this line.
akka {
daemonic = on
loglevel = "INFO"
loggers = ["akka.event.slf4j.Slf4jLogger"]
logging-filter = "akka.event.slf4j.Slf4jLoggingFilter"
log-dead-letters-during-shutdown = false
http.server {
max-connections = 128
request-timeout = 20s
parsing {
max-method-length = 64
max-content-length = 1m
}
}
io.tcp {
direct-buffer-size = 1536 KiB
trace-logging = off
}
}
include "deprecated-settings.conf"