download_shard
Instructs the server to download a specific shard of historical ledger data from an external source. Your rippled
server must be configured to store history shards.
The download_shard
method is an admin method that cannot be run by unprivileged users.
The external source must provide the shard as an lz4-compressed tar archive served via HTTPS. The archive must contain the shard directory and data files in NuDB format.
Downloading and importing shards using this method is usually faster than acquiring the shards individually from the peer-to-peer network. You can also use this method to choose a specific range or set of shards to provide from your server.
Request Format
An example of the request format:
{
"command": "download_shard",
"shards": [
{"index": 1, "url": "https://example.com/1.tar.lz4"},
{"index": 2, "url": "https://example.com/2.tar.lz4"},
{"index": 5, "url": "https://example.com/5.tar.lz4"}
]
}
{
"method": "download_shard",
"params": [
{
"shards": [
{"index": 1, "url": "https://example.com/1.tar.lz4"},
{"index": 2, "url": "https://example.com/2.tar.lz4"},
{"index": 5, "url": "https://example.com/5.tar.lz4"}
]
}
]
}
# Syntax: download_shard [[<index> <url>]]
rippled download_shard 1 https://example.com/1.tar.lz4 2 https://example.com/2.tar.lz4 5 https://example.com/5.tar.lz4
The request includes the following field:
Field |
Type | Description |
---|---|---|
shards |
Array | List of Shard Descriptor objects (see below) describing shards to download and where to download them from. |
The validate
field is deprecated and may be removed in a future version. (The server always checks the integrity of shards when it imports them.)
Each Shard Descriptor object in the shards
array has the following fields:
Response Format
An example of a successful response:
{
"result": {
"message": "downloading shards 1-2,5"
},
"status": "success",
"type": "response"
}
200 OK
{
"result": {
"message": "downloading shards 1-2,5",
"status": "success"
}
}
Loading: "/etc/rippled.cfg"
Connecting to 127.0.0.1:5005
{
"result": {
"message": "downloading shards 1-2,5",
"status": "success"
}
}
The response follows the standard format, with a successful result containing the following fields:
Field |
Type | Description |
---|---|---|
message |
String | A message describing the actions taken in response to this request. |
Tip: To see which shards your server has available, use the crawl_shards method. Alternatively, you can look at the subfolders in your configured location for the shard store (the path
parameter of [shard_db]
in your rippled.cfg
). The folders are named to match the numbers of the shards; up to one of those folders may contain a control.txt
file indicating that the shard is incomplete.
Possible Errors
- Any of the universal error types.
notEnabled
- The server is not configured with a shard store.tooBusy
- The server is already downloading the shard, either from the peer-to-peer network or as the result of a previousdownload_shard
request.invalidParams
- One or more required fields were omitted from the request, or a provided field was specified as the wrong data type.reportingUnsupported
- (Reporting Mode servers only) This method is not available in Reporting Mode.