You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* Implement logging abstraction (#371)
Fixes#290
* Fix pre-commit to only check staged files
* Implement account ownership check and fix paging (#383)
Fixes#222
* Remove the github action package signing step
This will be done elsewhere.
* include searched_all in error response of tx (#407)
* helper function for subscribe to ensure cleanup (#402)
* Add closed to header for all paths of ledger_data (#416)
Fixes#219
* Add custom error for malformed owner and request (#417)
Fixes#274
* Use custom malformedAddress error in ledger_entry (#419)
Fixes#272
* Return lgrIdxsInvalid error for ledger_max_index less than ledger_min_index (#339)
Fixes#263
* Update headers to use #pragma once
* Add custom error for malformed request (#414)
Fixes#276
* Return srcCurMalformed on invalid taker_pays in book_offers (#413)
Fixes#267
* Fix source_location issue on MacOSX and Debug build (#431)
Fixes#428
* Implement always adding git ref to version string (#430)
Fixes#427
* add connection counting (#433)
* Fix malformed output format over ws rpc (#426)
Fixes#405
* Remove branch name from version string (#437)
Fixes a bug from #430
* Implement cli parsing using boost::po (#436)
Fixes#367
* Update documentation and config with ssl_cert_file and ssl_key_file (#443)
Fixes#424
* Fix gateway balances to match rippled output (#441)
Fixes#271
* Update README and example config to describe start_sequence (#438)
Fixes#250
* Add copyright to top of each source file (#444)
Fixes#411
* Increase file descriptor limit (#449)
* Update readme with more log configurations (#447)
Fixes#446
* Document dos_guard in example config. Log when client surpasses rate limit (#451)
* Add unit tests for DOSGuard (#453)
Fixes#452
* Build macOS and Ubuntu 22.04 (#456)
build release/x.y.z branches
* Add time measurement profiler (#458)
Rebase
* Match format to rippled error code (#461)
Fixes#263
* Change error message to match rippled (#463)
Fixes#263
* Add requests limit to DosGuard (#462)
Fixing #448
* Set version to 1.0.4-rc2
Co-authored-by: Alex Kremer <akremer@ripple.com>
Co-authored-by: CJ Cobb <46455409+cjcobb23@users.noreply.github.com>
Co-authored-by: Francis Mendoza <francissamuelmendoza7@gmail.com>
Co-authored-by: cyan317 <120398799+cindyyan317@users.noreply.github.com>
Copy file name to clipboardExpand all lines: README.md
+61-2Lines changed: 61 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -22,7 +22,7 @@ from which data can be extracted. The rippled node does not need to be running o
22
22
23
23
## Building
24
24
25
-
Clio is built with CMake. Clio requires at least GCC-11 (C++20), and Boost 1.75.0 or later.
25
+
Clio is built with CMake. Clio requires at least GCC-11/clang-14.0.0 (C++20), and Boost 1.75.0.
26
26
27
27
Use these instructions to build a Clio executable from the source. These instructions were tested on Ubuntu 20.04 LTS.
28
28
@@ -72,6 +72,36 @@ server is running
72
72
to the IP of your Clio server. This entry can take the form of a comma-separated list if
73
73
you are running multiple Clio nodes.
74
74
75
+
76
+
In addition, the parameter `start_sequence` can be included and configured within the top level of the config file. This parameter specifies the sequence of first ledger to extract if the database is empty. Note that ETL extracts ledgers in order and that no backfilling functionality currently exists, meaning Clio will not retroactively learn ledgers older than the one you specify. Choosing to specify this or not will yield the following behavior:
77
+
- If this setting is absent and the database is empty, ETL will start with the next ledger validated by the network.
78
+
- If this setting is present and the database is not empty, an exception is thrown.
79
+
80
+
In addition, the optional parameter `finish_sequence` can be added to the json file as well, specifying where the ledger can stop.
81
+
82
+
To add `start_sequence` and/or `finish_sequence` to the config.json file appropriately, they will be on the same top level of precedence as other parameters (such as `database`, `etl_sources`, `read_only`, etc.) and be specified with an integer. Here is an example snippet from the config file:
83
+
84
+
```json
85
+
"start_sequence": 12345,
86
+
"finish_sequence": 54321
87
+
```
88
+
89
+
The parameters `ssl_cert_file` and `ssl_key_file` can also be added to the top level of precedence of our Clio config. `ssl_cert_file` specifies the filepath for your SSL cert while `ssl_key_file` specifies the filepath for your SSL key. It is up to you how to change ownership of these folders for your designated Clio user. Your options include:
90
+
- Copying the two files as root somewhere that's accessible by the Clio user, then running `sudo chown` to your user
91
+
- Changing the permissions directly so it's readable by your Clio user
92
+
- Running Clio as root (strongly discouraged)
93
+
94
+
An example of how to specify `ssl_cert_file` and `ssl_key_file` in the config:
95
+
96
+
```json
97
+
"server":{
98
+
"ip": "0.0.0.0",
99
+
"port": 51233
100
+
},
101
+
"ssl_cert_file" : "/full/path/to/cert.file",
102
+
"ssl_key_file" : "/full/path/to/key.file"
103
+
```
104
+
75
105
Once your config files are ready, start rippled and Clio. It doesn't matter which you
76
106
start first, and it's fine to stop one or the other and restart at any given time.
77
107
@@ -152,9 +182,33 @@ You must:
152
182
## Logging
153
183
Clio provides several logging options, all are configurable via the config file and are detailed below.
154
184
155
-
`log_level`: The minimum level of severity at which the log message will be outputted.
185
+
`log_level`: The minimum level of severity at which the log message will be outputted by default.
156
186
Severity options are `trace`, `debug`, `info`, `warning`, `error`, `fatal`. Defaults to `info`.
157
187
188
+
`log_format`: The format of log lines produced by clio. Defaults to `"%TimeStamp% (%SourceLocation%) [%ThreadID%] %Channel%:%Severity% %Message%"`.
189
+
Each of the variables expands like so
190
+
-`TimeStamp`: The full date and time of the log entry
191
+
-`SourceLocation`: A partial path to the c++ file and the line number in said file (`source/file/path:linenumber`)
192
+
-`ThreadID`: The ID of the thread the log entry is written from
193
+
-`Channel`: The channel that this log entry was sent to
194
+
-`Severity`: The severity (aka log level) the entry was sent at
195
+
-`Message`: The actual log message
196
+
197
+
`log_channels`: An array of json objects, each overriding properties for a logging `channel`.
198
+
At the moment of writing, only `log_level` can be overriden using this mechanism.
199
+
200
+
Each object is of this format:
201
+
```json
202
+
{
203
+
"channel": "Backend",
204
+
"log_level": "fatal"
205
+
}
206
+
```
207
+
If no override is present for a given channel, that channel will log at the severity specified by the global `log_level`.
208
+
Overridable log channels: `Backend`, `WebServer`, `Subscriptions`, `RPC`, `ETL` and `Performance`.
209
+
210
+
> **Note:** See `example-config.json` for more details.
211
+
158
212
`log_to_console`: Enable/disable log output to console. Options are `true`/`false`. Defaults to true.
159
213
160
214
`log_directory`: Path to the directory where log files are stored. If such directory doesn't exist, Clio will create it. If not specified, logs are not written to a file.
@@ -170,6 +224,11 @@ rotate the current log file. Defaults to 12 hours.
170
224
Note, time-based log rotation occurs dependently on size-based log rotation, where if a
171
225
size-based log rotation occurs, the timer for the time-based rotation will reset.
172
226
227
+
`log_tag_style`: Tag implementation to use. Must be one of:
228
+
-`uint`: Lock free and threadsafe but outputs just a simple unsigned integer
229
+
-`uuid`: Threadsafe and outputs a UUID tag
230
+
-`none`: Don't use tagging at all
231
+
173
232
## Cassandra / Scylla Administration
174
233
175
234
Since Clio relies on either Cassandra or Scylla for its database backend, here are some important considerations:
0 commit comments