Merge pull request #889 from ripple/lp-edits
Update 2020 refresh branch w/ master, landing, backgrounds, etc.
@@ -37,6 +37,7 @@
|
||||
"1.3.1",
|
||||
"1.4.0",
|
||||
"1.5.0",
|
||||
"1.6.0",
|
||||
] %}
|
||||
|
||||
{% for v in rippled_versions %}
|
||||
|
||||
@@ -92,6 +92,8 @@ The amendments that a `rippled` server is configured to vote for or against have
|
||||
|
||||
If your server is amendment blocked, you must [upgrade to a new version](install-rippled.html) to sync with the network.
|
||||
|
||||
It is also possible to be amendment blocked because you connected your server to a [parallel network](parallel-networks.html) that has different amendments enabled. For example, the XRP Ledger Devnet typically has upcoming and experimental amendments enabled. If you are using the latest production release, your server is likely to be amendment blocked when connecting to Devnet. You could resolve this issue by upgrading to an unstable pre-release or nightly build, or you could [connect to a different network such as Testnet](connect-your-rippled-to-the-xrp-test-net.html) instead.
|
||||
|
||||
|
||||
#### How to Tell If Your `rippled` Server Is Amendment Blocked
|
||||
|
||||
|
||||
149
content/concepts/consensus-network/invariant-checking.md
Normal file
@@ -0,0 +1,149 @@
|
||||
# Invariant Checking
|
||||
|
||||
Invariant checking is a safety feature of the XRP Ledger. It consists of a set of checks, separate from normal transaction processing, that guarantee that certain _invariants_ hold true across all transactions.
|
||||
|
||||
Like many safety features, we all hope that invariant checking never actually needs to do anything. However, it can be useful to understand the XRP Ledger's invariants because they define hard limits on the XRP Ledger's transaction processing, and to recognize the problem in the unlikely event that a transaction fails because it violated an invariant check.
|
||||
|
||||
Invariants should not trigger, but they ensure the XRP Ledger's integrity from bugs yet to be discovered or even created.
|
||||
|
||||
|
||||
## Why it Exists
|
||||
|
||||
- The source code for the XRP Ledger is complicated and vast; there is a high potential for code to execute incorrectly.
|
||||
- The cost of incorrectly executing a transaction is high and not acceptable by any standards.
|
||||
|
||||
Specifically, incorrect transaction executions could create invalid or corrupt data that later consistently crashes servers in the network by sending them into an "impossible" state which could halt the entire network.
|
||||
|
||||
The processing of incorrect transaction would undermine the value of trust in the XRP Ledger. Invariant checking provides value to the entire XRP Ledger because it adds the feature of reliability.
|
||||
|
||||
|
||||
|
||||
## How it Works
|
||||
|
||||
The invariant checker is a second layer of code that runs automatically in real-time after each transaction. Before the transaction's results are committed to the ledger, the invariant checker examines those changes for correctness. If the transaction's results would break one of the XRP Ledger's strict rules, the invariant checker rejects the transaction. Transactions that are rejected this way have the result code `tecINVARIANT_FAILED` and are included in the ledger with no effects.
|
||||
|
||||
To include the transaction in the ledger with a `tec`-class code, some minimal processing is necessary. If this minimal processing still breaks an invariant, the transaction fails with the code `tefINVARIANT_FAILED` instead, and is not included in the ledger at all.
|
||||
|
||||
|
||||
## Active Invariants
|
||||
|
||||
The XRP Ledger checks all the following invariants on each transaction:
|
||||
|
||||
[[Source]](https://github.com/ripple/rippled/blob/023f5704d07d09e70091f38a0d4e5df213a3144b/src/ripple/app/tx/impl/InvariantCheck.h#L92 "Source")
|
||||
|
||||
- [Transaction Fee Check](#transaction-fee-check)
|
||||
|
||||
[[Source]](https://github.com/ripple/rippled/blob/023f5704d07d09e70091f38a0d4e5df213a3144b/src/ripple/app/tx/impl/InvariantCheck.h#L118 "Source")
|
||||
|
||||
- [XRP Not Created](#xrp-not-created)
|
||||
|
||||
[[Source]](https://github.com/ripple/rippled/blob/023f5704d07d09e70091f38a0d4e5df213a3144b/src/ripple/app/tx/impl/InvariantCheck.h#L146 "Source")
|
||||
|
||||
- [Account Roots Not Deleted](#account-roots-not-deleted)
|
||||
|
||||
[[Source]](https://github.com/ripple/rippled/blob/023f5704d07d09e70091f38a0d4e5df213a3144b/src/ripple/app/tx/impl/InvariantCheck.h#L173 "Source")
|
||||
|
||||
- [XRP Balance Checks](#xrp-balance-checks)
|
||||
|
||||
[[Source]](https://github.com/ripple/rippled/blob/023f5704d07d09e70091f38a0d4e5df213a3144b/src/ripple/app/tx/impl/InvariantCheck.h#L197 "Source")
|
||||
|
||||
- [Ledger Entry Types Match](#ledger-entry-types-match)
|
||||
|
||||
[[Source]](https://github.com/ripple/rippled/blob/023f5704d07d09e70091f38a0d4e5df213a3144b/src/ripple/app/tx/impl/InvariantCheck.h#L224 "Source")
|
||||
|
||||
- [No XRP Trust Lines](#no-xrp-trust-lines)
|
||||
|
||||
[[Source]](https://github.com/ripple/rippled/blob/023f5704d07d09e70091f38a0d4e5df213a3144b/src/ripple/app/tx/impl/InvariantCheck.h#L251 "Source")
|
||||
|
||||
- [No Bad Offers](#no-bad-offers)
|
||||
|
||||
[[Source]](https://github.com/ripple/rippled/blob/023f5704d07d09e70091f38a0d4e5df213a3144b/src/ripple/app/tx/impl/InvariantCheck.h#L275 "Source")
|
||||
|
||||
- [No Zero Escrow](#no-zero-escrow)
|
||||
|
||||
[[Source]](https://github.com/ripple/rippled/blob/023f5704d07d09e70091f38a0d4e5df213a3144b/src/ripple/app/tx/impl/InvariantCheck.h#L300 "Source")
|
||||
|
||||
- [Valid New Account Root](#valid-new-account-root)
|
||||
|
||||
|
||||
### Transaction Fee Check
|
||||
|
||||
- **Invariant Condition(s):**
|
||||
- The [transaction cost](transaction-cost.html) amount must never be negative, nor larger than the cost specified in the transaction.
|
||||
|
||||
|
||||
### XRP Not Created
|
||||
|
||||
- **Invariant Condition(s):**
|
||||
- A transaction must not create XRP and should only destroy the XRP [transaction cost](transaction-cost.html).
|
||||
|
||||
|
||||
### Account Roots Not Deleted
|
||||
|
||||
- **Invariant Condition(s):**
|
||||
- An [account](accounts.html) cannot be deleted from the ledger except by an [AccountDelete transaction][].
|
||||
- A successful AccountDelete transaction always deletes exactly 1 account.
|
||||
|
||||
|
||||
### XRP Balance Checks
|
||||
|
||||
- **Invariant Condition(s):**
|
||||
- An account's XRP balance must be of type XRP, and it cannot be less than 0 or more than 100 billion XRP exactly.
|
||||
|
||||
|
||||
### Ledger Entry Types Match
|
||||
|
||||
- **Invariant Condition(s):**
|
||||
- Corresponding modified ledger entries should match in type and added entries should be a [valid type](ledger-object-types.html).
|
||||
|
||||
|
||||
### No XRP Trust Lines
|
||||
|
||||
- **Invariant Condition(s):**
|
||||
- [Trust lines](trust-lines-and-issuing.html) using XRP are not allowed.
|
||||
|
||||
|
||||
### No Bad Offers
|
||||
|
||||
- **Invariant Condition(s):**
|
||||
- [Offers](offer.html#offer) should be for non-negative amounts and must not be XRP to XRP.
|
||||
|
||||
|
||||
### No Zero Escrow
|
||||
|
||||
- **Invariant Condition(s):**
|
||||
- An [escrow](escrow-object.html) entry must hold more than 0 XRP and less than 100 billion XRP.
|
||||
|
||||
|
||||
### Valid New Account Root
|
||||
|
||||
- **Invariant Condition(s):**
|
||||
- A new [account root](accountroot.html) must be the consequence of a payment.
|
||||
- A new account root must have the right starting [sequence](basic-data-types.html#account-sequence).
|
||||
- A transaction must not create more than one new [account](accounts.html).
|
||||
|
||||
|
||||
## See Also
|
||||
|
||||
- **Blog:**
|
||||
- [Protecting the Ledger: Invariant Checking](https://xrpl.org/blog/2017/invariant-checking.html)
|
||||
|
||||
- **Repository:**
|
||||
- [Invariant Check.h](https://github.com/ripple/rippled/blob/023f5704d07d09e70091f38a0d4e5df213a3144b/src/ripple/app/tx/impl/InvariantCheck.h)
|
||||
- [Invariant Check.cpp](https://github.com/ripple/rippled/blob/023f5704d07d09e70091f38a0d4e5df213a3144b/src/ripple/app/tx/impl/InvariantCheck.cpp)
|
||||
- [System Parameters](https://github.com/ripple/rippled/blob/develop/src/ripple/protocol/SystemParameters.h#L43)
|
||||
- [XRP Amount](https://github.com/ripple/rippled/blob/develop/src/ripple/basics/XRPAmount.h#L244)
|
||||
- [Ledger Formats](https://github.com/ripple/rippled/blob/023f5704d07d09e70091f38a0d4e5df213a3144b/src/ripple/protocol/LedgerFormats.h#L36-L94)
|
||||
|
||||
|
||||
- **Other:**
|
||||
- [Authorized Trust Lines](authorized-trust-lines.html)
|
||||
- [XRP Properties](xrp.html#xrp-properties)
|
||||
- [Calculating Balance Changes for a Transaction](https://xrpl.org/blog/2015/calculating-balance-changes-for-a-transaction.html#calculating-balance-changes-for-a-transaction)
|
||||
|
||||
|
||||
|
||||
<!--{# common link defs #}-->
|
||||
{% include '_snippets/rippled-api-links.md' %}
|
||||
{% include '_snippets/tx-type-links.md' %}
|
||||
{% include '_snippets/rippled_versions.md' %}
|
||||
@@ -18,17 +18,21 @@ The [server_info method][] reports how many ledger versions your server has avai
|
||||
|
||||
## Fetching History
|
||||
|
||||
When it starts, a `rippled` server's first priority is to get a complete copy of the latest validated ledger. From there, it keeps up with advances in the ledger progress. If configured to do so, the server also backfills ledger history up to a configured amount, which must be equal to or less than the cutoff beyond which online deletion is configured to delete.
|
||||
When an XRP Ledger server starts, its first priority is to get a complete copy of the latest validated ledger. From there, it keeps up with advances in the ledger progress. The server fills in any gaps in its ledger history that occur after syncing, and can backfill history from before it became synced. (Gaps in ledger history can occur if a server temporarily becomes too busy to keep up with the network, loses its network connection, or suffers other temporary issues.) When downloading ledger history, the server requests the missing data from its [peer servers](peer-protocol.html), and verifies the data's integrity using cryptographic [hashes][Hash].
|
||||
|
||||
The server can backfill history from before it became synced, as well as filling in any gaps in the history it has collected after syncing. (Gaps in ledger history can occur if a server temporarily becomes too busy to keep up with the network, loses its network connection, or suffers other temporary issues.) To backfill history, the server requests data from its peer `rippled` servers. The amount the server tries to backfill is defined by the `[ledger_history]` setting.
|
||||
Backfilling history is one of the server's lowest priorities, so it may take a long time to fill missing history, especially if the server is busy or has less than sufficient hardware and network specs. For recommendations on hardware specs, see [Capacity Planning](capacity-planning.html). Backfilling history also requires that at least one of the server's direct peers has the history in question. For more information on managing your server's peer-to-peer connections, see [Configure Peering](configure-peering.html).
|
||||
|
||||
The XRP Ledger identifies data (on several different levels) by a unique hash of its contents. The XRP Ledger's state data contains a short summary of the ledger's history, in the form of the [LedgerHashes object type](ledgerhashes.html). Servers use the LedgerHashes objects to know which ledger versions to fetch, and to confirm that the ledger data they receive is correct and complete.
|
||||
|
||||
Backfilling history is one of the server's lowest priorities, so it may take a long time to fill missing history, especially if the server is busy or has less than sufficient hardware and network specs. For recommendations on hardware specs, see [Capacity Planning](capacity-planning.html). Backfilling history also requires that at least one of the server's direct peers has the history in question. <!--{# TODO: link some info for managing your peer connections when that exists #}-->
|
||||
|
||||
### With Advisory Deletion
|
||||
<a id="with-advisory-deletion"></a><!-- old anchor to this area -->
|
||||
### Backfilling
|
||||
[Updated in: rippled 1.6.0][]
|
||||
|
||||
The amount of history a server attempts to download depends on its configuration. The server automatically tries to fill gaps by downloading history up to **the oldest ledger it already has available**. You can use the `[ledger_history]` setting to make the server backfill history beyond that point. However, the server never downloads ledgers that would be scheduled for [deletion](online-deletion.html).
|
||||
|
||||
The `[ledger_history]` setting defines a minimum number of ledgers to accumulate from before the current validated ledger. Use the special value `full` to download the [full history](#full-history) of the network. If you specify a number of ledgers, it must be equal to or more than the `online_deletion` setting; you cannot use `[ledger_history]` to make the server download _less_ history. To reduce the amount of history a server stores, change the [online deletion](online-deletion.html) settings instead.
|
||||
|
||||
If [online deletion](online-deletion.html) and advisory deletion are both enabled, the server automatically backfills data up to the oldest ledger it has not been allowed to delete yet. This can fetch data beyond the number of ledger versions configured in the `[ledger_history]` and `online_delete` settings. The [can_delete method][] tells the server what ledger versions it is allowed to delete.
|
||||
|
||||
|
||||
## Full History
|
||||
|
||||
@@ -28,18 +28,18 @@ To participate in the XRP Ledger, `rippled` servers connect to arbitrary peers u
|
||||
|
||||
Ideally, the server should be able to send _and_ receive connections on the peer port. You should [forward the port used for the peer protocol through your firewall](forward-ports-for-peering.html) to the `rippled` server.
|
||||
|
||||
The [default `rippled` config file](https://github.com/ripple/rippled/blob/master/cfg/rippled-example.cfg) listens for incoming peer protocol connections on port 51235 on all network interfaces. You can change the port used by editing the appropriate stanza in your `rippled.cfg` file.
|
||||
IANA [has assigned port **2459**](https://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xhtml?search=2459) for the XRP Ledger peer protocol, but for compatibility with legacy systems, the [default `rippled` config file](https://github.com/ripple/rippled/blob/master/cfg/rippled-example.cfg) listens for incoming peer protocol connections on **port 51235** on all network interfaces. If you run a server, you can configure which port(s) your server listens on using the `rippled.cfg` file.
|
||||
|
||||
Example:
|
||||
|
||||
```
|
||||
[port_peer]
|
||||
port = 51235
|
||||
port = 2459
|
||||
ip = 0.0.0.0
|
||||
protocol = peer
|
||||
```
|
||||
|
||||
The peer protocol port also serves the [special Peer Crawler API method](peer-crawler.html).
|
||||
The peer protocol port also serves [special peer port methods](peer-port-methods.html).
|
||||
|
||||
## Node Key Pair
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# download_shard
|
||||
[[Source]](https://github.com/ripple/rippled/blob/master/src/ripple/rpc/handlers/DownloadShard.cpp "Source")
|
||||
|
||||
Instructs the server to download a specific [shard of historical ledger data](history-sharding.html) from an external source. Your `rippled` server must be [configured to store history shards](configure-history-sharding.html). [New in: rippled 1.1.0][]
|
||||
Instructs the server to download a specific [shard of historical ledger data](history-sharding.html) from an external source. Your `rippled` server must be [configured to store history shards](configure-history-sharding.html). [Updated in: rippled 1.6.0][]
|
||||
|
||||
_The `download_shard` method is an [admin method](admin-rippled-methods.html) that cannot be run by unprivileged users._
|
||||
|
||||
@@ -45,15 +45,23 @@ An example of the request format:
|
||||
}
|
||||
```
|
||||
|
||||
*Commandline*
|
||||
|
||||
```sh
|
||||
# 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
|
||||
```
|
||||
|
||||
<!-- MULTICODE_BLOCK_END -->
|
||||
|
||||
|
||||
The request includes the following fields:
|
||||
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. |
|
||||
| `validate` | Boolean | _(Optional)_ If `false`, skip validating the downloaded data. The default is `true`, which checks that the shard in the archive contains all the data objects for the shard and the shard is part of the ledger history of the current validated ledger. |
|
||||
|
||||
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.) [Updated in: rippled 1.6.0][]
|
||||
|
||||
Each **Shard Descriptor object** in the `shards` array has the following fields:
|
||||
|
||||
@@ -94,6 +102,19 @@ An example of a successful response:
|
||||
}
|
||||
```
|
||||
|
||||
*Commandline*
|
||||
|
||||
```json
|
||||
Loading: "/etc/rippled.cfg"
|
||||
Connecting to 127.0.0.1:5005
|
||||
|
||||
{
|
||||
"result": {
|
||||
"message": "downloading shards 1-2,5",
|
||||
"status": "success"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
<!-- MULTICODE_BLOCK_END -->
|
||||
|
||||
|
||||
@@ -49,7 +49,7 @@ rippled connect 192.170.145.88 51235
|
||||
| `Field` | 型 | 説明 |
|
||||
|:--------|:-------|:----------------------------------------------------------|
|
||||
| `ip` | 文字列 | 接続するサーバーのIPアドレス。 |
|
||||
| `port` | 数値 | _(省略可)_ 接続時に使用するポート番号。デフォルトでは6561です。 |
|
||||
| `port` | 数値 | _(省略可)_ 接続時に使用するポート番号。デフォルトでは**2459**です。 [新規: rippled 1.6.0][] |
|
||||
|
||||
### 応答フォーマット
|
||||
|
||||
|
||||
@@ -49,7 +49,7 @@ The request includes the following parameters:
|
||||
| `Field` | Type | Description |
|
||||
|:--------|:-------|:----------------------------------------------------------|
|
||||
| `ip` | String | IP address of the server to connect to |
|
||||
| `port` | Number | _(Optional)_ Port number to use when connecting. Defaults to 6561. |
|
||||
| `port` | Number | _(Optional)_ Port number to use when connecting. The default is **2459**. [Updated in: rippled 1.6.0][] |
|
||||
|
||||
### Response Format
|
||||
|
||||
|
||||
109
content/references/rippled-api/peer-port-methods/health-check.md
Normal file
@@ -0,0 +1,109 @@
|
||||
# Health Check
|
||||
[[Source]](https://github.com/ripple/rippled/blob/de0c52738785de8bf837f9124da65c7905e7bb5a/src/ripple/overlay/impl/OverlayImpl.cpp#L1084-L1168 "Source")
|
||||
|
||||
The Health Check is a special [peer port method](peer-port-methods.html) for reporting on the health of an individual `rippled` server. This method is intended for use in automated monitoring to recognize outages and prompt automated or manual interventions such as restarting the server. [New in: rippled 1.6.0][]
|
||||
|
||||
This method checks several metrics to see if they are in ranges generally considered healthy. If all metrics are in normal ranges, this method reports that the server is healthy. If any metric is outside normal ranges, this method reports that the server is unhealthy and reports the metric(s) that are unhealthy. Since some metrics may rapidly fluctuate into and out of unhealthy ranges, you should not raise alerts unless the health check fails multiple times in a row.
|
||||
|
||||
**Note:** Since the health check is a [peer port method](peer-port-methods.html), it is not available when testing the server in [stand-alone mode](rippled-server-modes.html#reasons-to-run-a-rippled-server-in-stand-alone-mode).
|
||||
|
||||
|
||||
## Request Format
|
||||
|
||||
To request the Health Check information, make the following HTTP request:
|
||||
|
||||
- **Protocol:** https
|
||||
- **HTTP Method:** GET
|
||||
- **Host:** (any `rippled` server, by hostname or IP address)
|
||||
- **Port:** (the port number where the `rippled` server uses the Peer Protocol, typically 51235)
|
||||
- **Path:** `/health`
|
||||
- **Security:** Most `rippled` servers use a self-signed certificate to respond to the request. By default, most tools (including web browsers) flag or block such responses for being untrusted. You must ignore the certificate checking (for example, if using cURL, add the `--insecure` flag) to display a response from those servers.
|
||||
|
||||
<!-- TODO: link a tutorial for how to run rippled with a non-self-signed TLS cert -->
|
||||
|
||||
## Example Response
|
||||
|
||||
<!-- MULTICODE_BLOCK_START -->
|
||||
|
||||
*Healthy*
|
||||
|
||||
```json
|
||||
HTTP/1.1 200 OK
|
||||
Server: rippled-1.6.0-b8
|
||||
Content-Type: application/json
|
||||
Connection: close
|
||||
Transfer-Encoding: chunked
|
||||
|
||||
{
|
||||
"info": {}
|
||||
}
|
||||
```
|
||||
|
||||
*Warning*
|
||||
|
||||
```json
|
||||
HTTP/1.1 503 Service Unavailable
|
||||
Server: rippled-1.6.0
|
||||
Content-Type: application/json
|
||||
Connection: close
|
||||
Transfer-Encoding: chunked
|
||||
|
||||
{
|
||||
"info": {
|
||||
"server_state": "connected",
|
||||
"validated_ledger": -1
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
*Critical*
|
||||
|
||||
```json
|
||||
HTTP/1.1 500 Internal Server Error
|
||||
Server: rippled-1.6.0
|
||||
Content-Type: application/json
|
||||
Connection: close
|
||||
Transfer-Encoding: chunked
|
||||
|
||||
{
|
||||
"info": {
|
||||
"peers": 0,
|
||||
"server_state": "disconnected",
|
||||
"validated_ledger":-1
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
<!-- MULTICODE_BLOCK_END -->
|
||||
|
||||
## Response Format
|
||||
|
||||
The response's HTTP status code indicates the health of the server:
|
||||
|
||||
| Status Code | Health Status | Description |
|
||||
|:------------------------------|:--------------|:-----------------------------|
|
||||
| **200 OK** | Healthy | All health metrics are within acceptable ranges. |
|
||||
| **503 Service Unavailable** | Warning | One or more metric is in the warning range. Manual intervention may or may not be necessary. |
|
||||
| **500 Internal Server Error** | Critical | One or more metric is in the critical range. There is a serious problem that probably needs manual intervention to fix. |
|
||||
|
||||
The response body is a JSON object with a single `info` object at the top level. The `info` object contains values for each metric that is in a warning or critical range. The response omits metrics that are in a healthy range, so a fully healthy server has an empty object.
|
||||
|
||||
The `info` object may contain the following fields:
|
||||
|
||||
| `Field` | Value | Description |
|
||||
|:--------------------|:--------|:---------------------------------------------|
|
||||
| `amendment_blocked` | Boolean | _(May be omitted)_ If `true`, the server is [amendment blocked](amendments.html#amendment-blocked) and must be upgraded to remain synced with the network; this state is critical. If the server is not amendment blocked, this field is omitted. |
|
||||
| `load_factor` | Number | _(May be omitted)_ A measure of the overall load the server is under. This reflects I/O, CPU, and memory limitations. This is a warning if the load factor is over 100, or critical if the load factor is 1000 or higher. |
|
||||
| `peers` | Number | _(May be omitted)_ The number of [peer servers](peer-protocol.html) this server is connected to. This is a warning if connected to 7 or fewer peers, and critical if connected to zero peers. |
|
||||
| `server_state` | String | _(May be omitted)_ The current [server state](rippled-server-states.html). This is a warning if the server is in the `tracking`, `syncing`, or `connected` states. This is critical if the server is in the `disconnected` state. |
|
||||
| `validated_ledger` | Number | _(May be omitted)_ The number of seconds since the last time a ledger was validated by [consensus](intro-to-consensus.html). If there is no validated ledger available ([as during the initial sync period when starting the server](server-doesnt-sync.html#normal-syncing-behavior)), this is the value `-1` and is considered a warning. This metric is also a warning if the last validated ledger was at least 7 seconds ago, or critical if the last validated ledger was at least 20 seconds ago. |
|
||||
|
||||
## See Also
|
||||
|
||||
For guidance interpreting the results of the health check, see [Health Check Interventions](health-check-interventions.html).
|
||||
|
||||
|
||||
<!--{# common link defs #}-->
|
||||
{% include '_snippets/rippled-api-links.md' %}
|
||||
{% include '_snippets/tx-type-links.md' %}
|
||||
{% include '_snippets/rippled_versions.md' %}
|
||||
@@ -1,6 +1,6 @@
|
||||
# Peer Crawler
|
||||
|
||||
The Peer Crawler is a special API endpoint for reporting on the health and topology of the peer-to-peer network. This API method is available by default on a non-privileged basis through the [Peer Protocol](peer-protocol.html) port, which is also used for `rippled` servers' peer-to-peer communications about consensus, ledger history, and other necessary information.
|
||||
The Peer Crawler is a special [peer port method](peer-port-methods.html) for reporting on the health and topology of the peer-to-peer network. This API method is available by default on a non-privileged basis through the [Peer Protocol](peer-protocol.html) port, which is also used for `rippled` servers' peer-to-peer communications about consensus, ledger history, and other necessary information.
|
||||
|
||||
The information reported by the peer crawler is effectively public, and can be used to report on the overall XRP Ledger network, its health, and topology.
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
# Connect Your rippled to an XRP Ledger Altnet
|
||||
# Connect Your rippled to a Parallel Network
|
||||
|
||||
Ripple hosts [alternative test and development networks](parallel-networks.html) for developers to test their apps on the latest non-production version of the XRP Ledger (Testnet) or to test and experiment with features on the latest beta version (Devnet). **The funds used on these networks are not real funds and are intended for testing only.** You can connect your [`rippled` server](the-rippled-server.html) to either the Testnet or Devnet.
|
||||
|
||||
**Note:** The XRP Testnet and Devnet ledger and balances are reset on a regular basis.
|
||||
**Caution:** The Devnet frequently has new and experimental [amendments](amendments.html) enabled, so the latest production release version is likely to be amendment blocked when connecting to Devnet. You should use a pre-release or nightly build when connecting to Devnet.
|
||||
|
||||
## Steps
|
||||
|
||||
|
||||
@@ -33,6 +33,8 @@ If you run multiple [`rippled` servers](the-rippled-server.html) in the same dat
|
||||
|
||||
This defines specific peer servers to which this server should always attempt to maintain a direct peer-to-peer connection.
|
||||
|
||||
**Note:** If you omit the port number, the server uses port 2459, the IANA-assigned port for the [XRP Ledger protocol](peer-protocol.html). [New in: rippled 1.6.0][]
|
||||
|
||||
2. In the `[node_seed]` section, set the server's node seed to one of the `validation_seed` values you generated using the [validation_create method][] in step 2. Each server must use a unique node seed. For example:
|
||||
|
||||
[node_seed]
|
||||
|
||||
@@ -40,9 +40,11 @@ To set up a specific server as a private peer, complete the following steps:
|
||||
|
||||
If your server connects using **proxies**, the IP addresses and ports should match the configurations of the `rippled` servers you are using as proxies. For each of those servers, the port number should match the `protocol = peer` port in that server's config file (usually 51235). For example, your configuration might look like this:
|
||||
|
||||
[ips_fixed]
|
||||
192.168.0.1 51235
|
||||
192.168.0.2 51235
|
||||
[ips_fixed]
|
||||
192.168.0.1 51235
|
||||
192.168.0.2 51235
|
||||
|
||||
**Note:** If you omit the port number, the server uses port 2459, the IANA-assigned port for the [XRP Ledger protocol](peer-protocol.html). [New in: rippled 1.6.0][]
|
||||
|
||||
4. If using proxies, cluster them with your private peer and each other.
|
||||
|
||||
|
||||
@@ -0,0 +1,52 @@
|
||||
---
|
||||
html: enable-link-compression.html
|
||||
funnel: Docs
|
||||
doc_type: Tutorials
|
||||
category: Manage the rippled Server
|
||||
subcategory: Configure Peering
|
||||
blurb: Save bandwidth by compressing peer-to-peer communications.
|
||||
---
|
||||
# Enable Link Compression
|
||||
|
||||
The `rippled` server can save bandwidth by compressing its [peer-to-peer communications](peer-protocol.html), at a cost of greater CPU usage. If you enable link compression, the server automatically compresses communications with peer servers that also have link compression enabled. [New in: rippled 1.6.0][]
|
||||
|
||||
## Steps
|
||||
|
||||
To enable link compression on your server, complete the following steps:
|
||||
|
||||
### 1. Edit your `rippled` server's config file.
|
||||
|
||||
```sh
|
||||
$ vim /etc/opt/ripple/rippled.cfg
|
||||
```
|
||||
|
||||
{% include '_snippets/conf-file-location.md' %}<!--_ -->
|
||||
|
||||
### 2. In the config file, add or uncomment the `[compression]` stanza.
|
||||
|
||||
To enable compression:
|
||||
|
||||
```text
|
||||
[compression]
|
||||
true
|
||||
```
|
||||
|
||||
Use `false` to disable compression (the default).
|
||||
|
||||
### 3. Restart the `rippled` server
|
||||
|
||||
```sh
|
||||
$ sudo systemctl restart rippled.service
|
||||
```
|
||||
|
||||
After the restart, your server automatically uses link compression with other peers that also have link compression enabled.
|
||||
|
||||
## See Also
|
||||
|
||||
- [Capacity Planning](capacity-planning.html)
|
||||
- [Peer Protocol](peer-protocol.html)
|
||||
|
||||
<!--{# common link defs #}-->
|
||||
{% include '_snippets/rippled-api-links.md' %}
|
||||
{% include '_snippets/tx-type-links.md' %}
|
||||
{% include '_snippets/rippled_versions.md' %}
|
||||
@@ -8,7 +8,7 @@ Use these steps to manually connect your server to a specific [peer](peer-protoc
|
||||
## Prerequisites
|
||||
|
||||
- You must know the IP address of the peer you want to connect to.
|
||||
- You must know what port the peer you want to connect to uses for the XRP Ledger [peer protocol](peer-protocol.html). By default, this is port 51235.
|
||||
- You must know what port the peer you want to connect to uses for the XRP Ledger [peer protocol](peer-protocol.html). The default config file uses port 51235.
|
||||
- You must have a network connection from your server to the peer. For example, the peer server must [forward the appropriate port through its firewall](forward-ports-for-peering.html).
|
||||
- The peer server must have available peer slots. If the peer is already at its maximum number of peers, you can ask the peer server's operator to add a [peer reservation](use-a-peer-reservation.html) for your server.
|
||||
|
||||
|
||||
@@ -53,17 +53,21 @@ For development purposes, run `rippled` as a non-admin user, not using `sudo`.
|
||||
$ git clone git@github.com:ripple/rippled.git
|
||||
$ cd rippled
|
||||
|
||||
0. By default, cloning puts you on the `develop` branch. Use this branch if you are doing development work and want the latest set of untested features.
|
||||
0. Switch to the appropriate branch for the software version you want:
|
||||
|
||||
If you want the latest stable release, checkout the `master` branch.
|
||||
For the latest stable release, use the `master` branch.
|
||||
|
||||
$ git checkout master
|
||||
|
||||
If you want to test out the latest release candidate, checkout the `release` branch:
|
||||
For the latest release candidate, use the `release` branch:
|
||||
|
||||
$ git checkout release
|
||||
|
||||
Or, you can checkout one of the tagged releases listed on [GitHub](https://github.com/ripple/rippled/releases).
|
||||
For the latest in-progress version, use the `develop` branch:
|
||||
|
||||
$ git checkout develop
|
||||
|
||||
Or, you can checkout one of the tagged releases listed on [GitHub](https://github.com/ripple/rippled/releases).
|
||||
|
||||
0. In the `rippled` directory you cloned, create your build directory and access it. For example:
|
||||
|
||||
|
||||
@@ -87,12 +87,12 @@ These instructions use Ubuntu's APT (Advanced Packaging Tool) to install the sof
|
||||
7. Check the commit log to be sure you're compiling the version you intend to. The most recent commit should be signed by a well-known Ripple developer and should set the version number to the latest released version. For example:
|
||||
|
||||
$ git log -1
|
||||
commit 01bd5a2646cda78ee09d2067c287c8f89872736d
|
||||
Author: manojsdoshi <mdoshi@ripple.com>
|
||||
Date: Tue Aug 18 15:32:50 2020 -0700
|
||||
|
||||
commit 06c371544acc3b488b9d9c057cee4e51f6bef7a2
|
||||
Author: Nik Bougalis <nikb@bougalis.net>
|
||||
Date: Mon Nov 25 22:58:03 2019 -0800
|
||||
Set version to 1.6.0
|
||||
|
||||
Set version to 1.4.0
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,3 +1,11 @@
|
||||
---
|
||||
html: capacity-planning.html
|
||||
funnel: Docs
|
||||
doc_type: Tutorials
|
||||
category: Manage the rippled Server
|
||||
subcategory: Installation
|
||||
blurb: Plan system specs and tune configuration for rippled in production environments.
|
||||
---
|
||||
# Capacity Planning
|
||||
|
||||
This section describes configuration, network, and hardware recommendations that you can use to tune and optimize the performance of your `rippled` server. Being aware of these considerations can help you ensure that your `rippled` server is ready to handle XRP Ledger network capacity today and in the near future.
|
||||
@@ -177,16 +185,21 @@ Memory requirements are mainly a function of the `node_size` configuration setti
|
||||
|
||||
#### Network
|
||||
|
||||
Any enterprise or carrier-class data center should have substantial network bandwidth to support running `rippled` servers.
|
||||
Any enterprise or carrier-class data center should have substantial network bandwidth to support running `rippled` servers. The actual bandwidth necessary varies significantly based on the current transaction volume in the network. Server behavior (such as backfilling [ledger history](ledger-history.html)) also affects network use.
|
||||
|
||||
Here are examples of observed network bandwidth use for common `rippled` tasks:
|
||||
During exceptionally high periods of transaction volume, some operators have reported that their `rippled` servers have completely saturated a 100 MBit/s network link. Therefore, a gigabit network interface is required for reliable performance.
|
||||
|
||||
Here are examples of observed uncompressed network bandwidth use for common `rippled` tasks:
|
||||
|
||||
| Task | Transmit/Receive |
|
||||
|:------------------------------------------------|:---------------------------|
|
||||
| Process current transaction volumes | 2 Mbps transmit, 2 Mbps receive |
|
||||
| Process average transaction volumes | 2 Mbps transmit, 2 Mbps receive |
|
||||
| Process peak transaction volumes | >100 Mbps transmit |
|
||||
| Serve historical ledger and transaction reports | 100 Mbps transmit |
|
||||
| Start up `rippled` | 20 Mbps receive |
|
||||
|
||||
You can save bandwidth by [enabling compression on peer-to-peer communications](enable-link-compression.html), at a cost of higher CPU. Many hardware configurations have spare CPU capacity during normal use, so this can be an economical option if your network bandwidth is limited.
|
||||
|
||||
|
||||
## See Also
|
||||
|
||||
|
||||
@@ -14,6 +14,16 @@ Before you install `rippled`, you must meet the [System Requirements](system-req
|
||||
|
||||
1. Install the Ripple RPM repository:
|
||||
|
||||
Choose the appropriate RPM repository for the stability of releases you want:
|
||||
|
||||
- `stable` for the latest production release (`master` branch)
|
||||
- `unstable` for pre-release builds (`release` branch)
|
||||
- `nightly` for experimental/development builds (`develop` branch)
|
||||
|
||||
<!-- MULTICODE_BLOCK_START -->
|
||||
|
||||
*Stable*
|
||||
|
||||
$ cat << REPOFILE | sudo tee /etc/yum.repos.d/ripple.repo
|
||||
[ripple-stable]
|
||||
name=XRP Ledger Packages
|
||||
@@ -24,6 +34,33 @@ Before you install `rippled`, you must meet the [System Requirements](system-req
|
||||
repo_gpgcheck=1
|
||||
REPOFILE
|
||||
|
||||
*Pre-release*
|
||||
|
||||
$ cat << REPOFILE | sudo tee /etc/yum.repos.d/ripple.repo
|
||||
[ripple-unstable]
|
||||
name=XRP Ledger Packages
|
||||
baseurl=https://repos.ripple.com/repos/rippled-rpm/unstable/
|
||||
enabled=1
|
||||
gpgcheck=0
|
||||
gpgkey=https://repos.ripple.com/repos/rippled-rpm/unstable/repodata/repomd.xml.key
|
||||
repo_gpgcheck=1
|
||||
REPOFILE
|
||||
|
||||
*Development*
|
||||
|
||||
$ cat << REPOFILE | sudo tee /etc/yum.repos.d/ripple.repo
|
||||
[ripple-nightly]
|
||||
name=XRP Ledger Packages
|
||||
baseurl=https://repos.ripple.com/repos/rippled-rpm/nightly/
|
||||
enabled=1
|
||||
gpgcheck=0
|
||||
gpgkey=https://repos.ripple.com/repos/rippled-rpm/nightly/repodata/repomd.xml.key
|
||||
repo_gpgcheck=1
|
||||
REPOFILE
|
||||
|
||||
<!-- MULTICODE_BLOCK_START -->
|
||||
|
||||
|
||||
2. Fetch the latest repo updates:
|
||||
|
||||
$ sudo yum -y update
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# Install on Ubuntu or Debian Linux
|
||||
|
||||
This page describes the recommended instructions for installing the latest stable version of `rippled` on **Ubuntu Linux 16.04 or higher** or **Debian 9 (Stretch)**, using the [`apt`](https://help.ubuntu.com/lts/serverguide/apt.html) utility.
|
||||
This page describes the recommended instructions for installing the latest stable version of `rippled` on **Ubuntu Linux 16.04 or higher** or **Debian 9 or higher**, using the [`apt`](https://help.ubuntu.com/lts/serverguide/apt.html) utility.
|
||||
|
||||
These instructions install a binary that has been compiled by Ripple.
|
||||
|
||||
@@ -40,13 +40,15 @@ Before you install `rippled`, you must meet the [System Requirements](system-req
|
||||
|
||||
4. Add the appropriate Ripple repository for your operating system version:
|
||||
|
||||
$ echo "deb https://repos.ripple.com/repos/rippled-deb bionic stable" | \
|
||||
$ echo "deb https://repos.ripple.com/repos/rippled-deb focal stable" | \
|
||||
sudo tee -a /etc/apt/sources.list.d/ripple.list
|
||||
|
||||
The above example is appropriate for **Ubuntu 18.04 Bionic Beaver**. For other operating systems, replace the word `bionic` with one of the following:
|
||||
The above example is appropriate for **Ubuntu 20.04 Focal Fossa**. For other operating systems, replace the word `focal` with one of the following:
|
||||
|
||||
- `bionic` for **Ubuntu 18.04 Bionic Beaver**
|
||||
- `xenial` for **Ubuntu 16.04 Xenial Xerus** <!-- SPELLING_IGNORE: xenial, xerus -->
|
||||
- `stretch` for **Debian 9 Stretch**
|
||||
- `buster` for **Debian 10 Buster**
|
||||
|
||||
If you want access to development or pre-release versions of `rippled`, use one of the following instead of `stable`:
|
||||
|
||||
|
||||
@@ -0,0 +1,110 @@
|
||||
# Health Check Interventions
|
||||
|
||||
The [Health Check method](health-check.html) can be used by automated monitoring to recognize when a `rippled` server is not healthy and prompt interventions such as restarting the server or alerting a human administrator.
|
||||
|
||||
Infrastructure monitoring, and reliability engineering more generally, is an advanced discipline that involves using multiple sources of data to make decisions in context. This document provides some suggestions for how to use the health check most effectively, but these recommendations are only meant as guidelines as part of a larger strategy.
|
||||
|
||||
## Momentary Failures
|
||||
|
||||
Some [metrics][] in the health check can rapidly fluctuate into unhealthy ranges and then recover automatically shortly afterward. It is unnecessary and undesirable to raise alerts every single time the health check reports an unhealthy status. An automated monitoring system should call the health check method frequently, but only escalate to a higher level of intervention based on the severity and frequency of the problem.
|
||||
|
||||
For example, if you check the health of the server once per second, you might raise an alert if the server reports "warning" status three times in a row, or four times in a five-second span. You might also raise an alert if the server reports "critical" status twice in a five-second span.
|
||||
|
||||
**Tip:** The server normally reports a "critical" status for the first few seconds after startup, switches to a "warning" status after it establishes a connection to the network, and finally reports a "healthy" status when it has fully synced to the network. After a restart, you should give a server 5–15 minutes to sync before taking additional interventions.
|
||||
|
||||
## Special Cases
|
||||
|
||||
Certain server configurations may always report a `warning` status even when operating normally. If your server qualifies as a special case, you must configure your automated monitoring to recognize the difference between the normal status and an actual problem. This probably involves parsing the JSON response body for the health check method and comparing the values there with expected normal ranges.
|
||||
|
||||
Some examples of special cases that may occur include:
|
||||
|
||||
- A [private peer](peer-protocol.html#private-peers) typically has a very small number of peer-to-peer connections to known servers only, but the health check reports a warning on the `peers` metric if the server is connected to 7 or fewer peers. You should know the exact number of peers your server is configured to have and check for that value.
|
||||
- On a [parallel or test network](parallel-networks.html) where new transactions are not being sent continuously, the network waits up to 20 seconds for new transactions before attempting to validate a new ledger version, but the health check reports a warning on the `validated_ledger` metric if the latest validated ledger is 7 or more seconds old. If you are running `rippled` on a non-production network, you may want to ignore `warning` messages for this metric unless you know that there should be transactions being regularly sent. You may still want to alert on the `critical` level of 20 seconds, because the XRP Ledger protocol is designed to validate new ledger versions at least once every 20 seconds even if there are no new transactions to process.
|
||||
|
||||
## Suggested Interventions
|
||||
|
||||
When a health check fails, and it's not just a [momentary failure](#momentary-failures), the action to take to recover from the outage varies based on the cause. You may be able to configure your infrastructure to fix some types of failures automatically. Other failures require the intervention of a human administrator who can investigate and take the necessary steps to resolve more complex or critical failures; depending on the structure of your organization, you may have different levels of human administrator so that less skilled, lower level administrators can fix certain issues independently, but need to escalate to higher level administrators to fix larger or more complex issues. How and when you respond is likely to depend on your unique situation, but the metrics reported in the health check result can be a factor in these decisions.
|
||||
|
||||
The following sections suggest some common interventions you may want to attempt and the health check statuses most likely to prompt those interventions. Automated systems and human administrators may selectively escalate through these and other interventions:
|
||||
|
||||
- [Redirect traffic](#redirect-traffic) away from the affected server
|
||||
- [Restart](#restart) the server software or hardware
|
||||
- [Upgrade](#upgrade) the `rippled` software
|
||||
- [Investigate network](#investigate-network) in case the problem originates elsewhere
|
||||
- [Replace hardware](#replace-hardware)
|
||||
|
||||
|
||||
### Redirect Traffic
|
||||
|
||||
A common reliability technique is to run a pool of redundant servers through one or more load-balancing proxies. You can do this with `rippled` servers, but should not do this with [validators](rippled-server-modes.html). In some cases, the load balancers can monitor the health of servers in their pools and direct traffic only to the servers that are currently reporting themselves as healthy. This allows servers to recover from being temporarily overloaded and automatically rejoin the pool of active servers.
|
||||
|
||||
Redirecting traffic away from a server that is unhealthy is an appropriate response, especially for servers that report a `health` status of `warning`. Servers in the `critical` range may need more significant interventions.
|
||||
|
||||
|
||||
### Restart
|
||||
|
||||
The most straightforward intervention is to restart the server. This can resolve temporary issues with several types of failures, including any of the following [metrics][]:
|
||||
|
||||
- `load_factor`
|
||||
- `peers`
|
||||
- `server_state`
|
||||
- `validated_ledger`
|
||||
|
||||
To restart only the `rippled` service, use `systemctl`:
|
||||
|
||||
```
|
||||
$ sudo systemctl restart rippled.service
|
||||
```
|
||||
|
||||
A stronger intervention is to restart the entire machine.
|
||||
|
||||
**Caution:** After a server starts, it typically needs up to 15 minutes to sync to the network. During this time, the health check is likely to report a critical or warning status. You should be sure your automated systems give servers enough time to sync before restarting them again.
|
||||
|
||||
|
||||
### Upgrade
|
||||
|
||||
If the server reports `"amendment_blocked": true` in the health check, this indicates that the XRP Ledger has enabled a [protocol amendment](amendments.html) that your server does not understand. As a precaution against misinterpreting the revised rules of the network in a way that causes you to lose money, such servers become "amendment blocked" instead of operating normally.
|
||||
|
||||
To resolve being amendment blocked, [update your server](install-rippled.html) to a newer software version that understands the amendment.
|
||||
|
||||
Also, software bugs can cause a server to get [stuck not syncing](server-doesnt-sync.html). In this case, the `server_state` metric is likely to be in a warning or critical state. If you are not using the latest stable release, you should upgrade to get the latest fixes for any known issues that could cause this.
|
||||
|
||||
|
||||
### Investigate Network
|
||||
|
||||
An unreliable or insufficient network connection can cause a server to report outages. Warning or critical values in the following [metrics][] can indicate network problems:
|
||||
|
||||
- `peers`
|
||||
- `server_state`
|
||||
- `validated_ledger`
|
||||
|
||||
In this case, the necessary interventions may involve changes to other systems, such as:
|
||||
|
||||
- Adjusting firewall rules to allow necessary traffic to reach a server, or to block harmful traffic from outside
|
||||
- Restarting or replacing network interfaces, switches, routers, or cabling
|
||||
- Contacting other network service providers to resolve an issue on their end
|
||||
|
||||
|
||||
|
||||
### Replace Hardware
|
||||
|
||||
If the outage is caused by a hardware failure or by higher load than the hardware is capable of handling, you may need to replace some components or even the entire server.
|
||||
|
||||
The amount of load on a server in the XRP Ledger depends in part on transaction volume in the network, which varies organically. Load also depends on your usage pattern. See [Capacity Planning](capacity-planning.html) for how to plan the appropriate hardware and settings for your situation.
|
||||
|
||||
Warning or critical values for the following [metrics][] may indicate insufficient hardware:
|
||||
|
||||
- `load_factor`
|
||||
- `server_state`
|
||||
- `validated_ledger`
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<!--{# common link defs #}-->
|
||||
[metrics]: health-check.html#response-format
|
||||
{% include '_snippets/rippled-api-links.md' %}
|
||||
{% include '_snippets/tx-type-links.md' %}
|
||||
{% include '_snippets/rippled_versions.md' %}
|
||||
@@ -4,6 +4,28 @@ The following sections describe some of the most common types of log messages th
|
||||
|
||||
This is an important step in [Diagnosing Problems](diagnosing-problems.html) with `rippled`.
|
||||
|
||||
## Log Message Structure
|
||||
|
||||
The following shows the format of the log file:
|
||||
|
||||
```text
|
||||
2020-Jul-08 20:10:17.372178946 UTC Peer:WRN [236] onReadMessage from n9J2CP7hZypxDJ27ZSxoy4VjbaSgsCNaRRJtJkNJM5KMdGaLdRy7 at 197.27.127.136:53046: stream truncated
|
||||
2020-Jul-08 20:11:13.582438263 UTC PeerFinder:ERR Logic testing 52.196.126.86:13308 with error, Connection timed out
|
||||
2020-Jul-08 20:11:57.728448343 UTC Peer:WRN [242] onReadMessage from n9J2CP7hZypxDJ27ZSxoy4VjbaSgsCNaRRJtJkNJM5KMdGaLdRy7 at 197.27.127.136:53366: stream truncated
|
||||
2020-Jul-08 20:12:12.075081020 UTC LoadMonitor:WRN Job: sweep run: 1172ms wait: 0ms
|
||||
```
|
||||
|
||||
Each line represents one log entry, with the following parts in order, separated by spaces:
|
||||
|
||||
1. The date the log entry was written, such as `2020-Jul-08`.
|
||||
2. The time the log entry was written, such as `20:12:12.075081020`.
|
||||
3. The time zone indicator `UTC`. (Log dates are always in UTC.) [New in: rippled 1.5.0][]
|
||||
4. The log partition and severity, such as `LoadMonitor:WRN`.
|
||||
5. The log message, such as `Job: sweep run: 1172ms wait: 0ms`.
|
||||
|
||||
For simplicity, the examples in this page omit the date, time, and time zone indicator.
|
||||
|
||||
|
||||
## Crashes
|
||||
|
||||
Messages in the log that mention runtime errors can indicate that the server crashed. These messages usually start with a message such as one of the following examples:
|
||||
@@ -32,7 +54,7 @@ If none of the above apply, please report the issue to Ripple as a security-sens
|
||||
Log messages such as the following indicate that a server received validations for different ledger indexes out of order.
|
||||
|
||||
```text
|
||||
2018-Aug-28 22:55:58.316094260 Validations:WRN Val for 2137ACEFC0D137EFA1D84C2524A39032802E4B74F93C130A289CD87C9C565011 trusted/full from nHUeUNSn3zce2xQZWNghQvd9WRH6FWEnCBKYVJu2vAizMxnXegfJ signing key n9KcRZYHLU9rhGVwB9e4wEMYsxXvUfgFxtmX25pc1QPNgweqzQf5 already validated sequence at or past 12133663 src=1
|
||||
Validations:WRN Val for 2137ACEFC0D137EFA1D84C2524A39032802E4B74F93C130A289CD87C9C565011 trusted/full from nHUeUNSn3zce2xQZWNghQvd9WRH6FWEnCBKYVJu2vAizMxnXegfJ signing key n9KcRZYHLU9rhGVwB9e4wEMYsxXvUfgFxtmX25pc1QPNgweqzQf5 already validated sequence at or past 12133663 src=1
|
||||
```
|
||||
|
||||
Occasional messages of this type do not usually indicate a problem. If this type of message occurs often with the same sending validator, it could indicate a problem, including any of the following (roughly in order of most to least likely):
|
||||
@@ -47,7 +69,7 @@ Occasional messages of this type do not usually indicate a problem. If this type
|
||||
The following log message indicates that [StatsD export](configure-statsd.html) failed:
|
||||
|
||||
```text
|
||||
2020-Apr-07 16:59:36.299867439 UTC Collector:ERR async_send failed: Connection refused
|
||||
Collector:ERR async_send failed: Connection refused
|
||||
```
|
||||
|
||||
This could mean:
|
||||
@@ -60,12 +82,23 @@ Check the `[insight]` stanza in your `rippled`'s config file and confirm that yo
|
||||
This error has no other impact on the `rippled` server, which should continue to work as normal except for the sending of StatsD metrics.
|
||||
|
||||
|
||||
## Check for upgrade
|
||||
|
||||
The following message indicates that the server has detected that it is running an older software version than at least 60% of its trusted validators:
|
||||
|
||||
```text
|
||||
LedgerMaster:ERR Check for upgrade: A majority of trusted validators are running a newer version.
|
||||
```
|
||||
|
||||
This is not strictly a problem, but an old server version is likely to become [amendment blocked](amendments.html#amendment-blocked). You should [update `rippled`](install-rippled.html) to the latest stable version. (If you are connected to [devnet](parallel-networks.html), update to the latest nightly version instead.)
|
||||
|
||||
|
||||
## Connection reset by peer
|
||||
|
||||
The following log message indicates that a peer `rippled` server closed a connection:
|
||||
|
||||
```text
|
||||
2018-Aug-28 22:55:41.738765510 Peer:WRN [012] onReadMessage: Connection reset by peer
|
||||
Peer:WRN [012] onReadMessage: Connection reset by peer
|
||||
```
|
||||
|
||||
Losing connections from time to time is normal for any peer-to-peer network. **Occasional messages of this kind do not indicate a problem.**
|
||||
@@ -81,7 +114,7 @@ A large number of these messages around the same time may indicate a problem, su
|
||||
The following log message indicates that a client to the server's public API has been dropped as a result of [rate limiting](rate-limiting.html):
|
||||
|
||||
```text
|
||||
2020-Feb-24 23:05:35.566312806 Resource:WRN Consumer entry 169.55.164.21 dropped with balance 15970 at or above drop threshold 15000
|
||||
Resource:WRN Consumer entry 169.55.164.21 dropped with balance 15970 at or above drop threshold 15000
|
||||
```
|
||||
|
||||
The entry contains the IP address of the client that exceeded its rate limit, and the client's "balance", which is a score estimating the rate at which the client has been using the API. The threshold for dropping a client is [hardcoded to a score of 15000](https://github.com/ripple/rippled/blob/06c371544acc3b488b9d9c057cee4e51f6bef7a2/src/ripple/resource/impl/Tuning.h#L34-L35).
|
||||
@@ -128,10 +161,10 @@ Messages such as the following occur when a function takes a long time to run (o
|
||||
The following similar message occurs when a job spends a long time waiting to run (again, over 11 seconds in this example):
|
||||
|
||||
```text
|
||||
2018-Aug-28 22:56:36.180970431 LoadMonitor:WRN Job: processLedgerData run: 0ms wait: 11566ms
|
||||
2018-Aug-28 22:56:36.181053831 LoadMonitor:WRN Job: AcquisitionDone run: 0ms wait: 11566ms
|
||||
2018-Aug-28 22:56:36.181110594 LoadMonitor:WRN Job: processLedgerData run: 0ms wait: 11566ms
|
||||
2018-Aug-28 22:56:36.181169931 LoadMonitor:WRN Job: AcquisitionDone run: 0ms wait: 11566ms
|
||||
LoadMonitor:WRN Job: processLedgerData run: 0ms wait: 11566ms
|
||||
LoadMonitor:WRN Job: AcquisitionDone run: 0ms wait: 11566ms
|
||||
LoadMonitor:WRN Job: processLedgerData run: 0ms wait: 11566ms
|
||||
LoadMonitor:WRN Job: AcquisitionDone run: 0ms wait: 11566ms
|
||||
```
|
||||
|
||||
These two types of messages often occur together, when a long-running job causes other jobs to wait a long time for it to finish.
|
||||
@@ -252,7 +285,7 @@ Aside from the bug, this error can also occur if `rippled` became unable to writ
|
||||
Log messages such as the following occur when the server sees a validation message from a peer and it does not know the parent ledger version that server is building on. This can occur when the server is not in sync with the rest of the network:
|
||||
|
||||
```text
|
||||
2018-Aug-28 22:56:22.256065549 Validations:WRN Unable to determine hash of ancestor seq=3 from ledger hash=00B1E512EF558F2FD9A0A6C263B3D922297F26A55AEB56A009341A22895B516E seq=12133675
|
||||
Validations:WRN Unable to determine hash of ancestor seq=3 from ledger hash=00B1E512EF558F2FD9A0A6C263B3D922297F26A55AEB56A009341A22895B516E seq=12133675
|
||||
```
|
||||
|
||||
{% include '_snippets/unsynced_warning_logs.md' %}
|
||||
@@ -264,9 +297,9 @@ Log messages such as the following occur when the server sees a validation messa
|
||||
Log messages such as the following occur when a server is not in sync with the rest of the network:
|
||||
|
||||
```text
|
||||
2018-Aug-28 22:56:22.368460130 LedgerConsensus:WRN View of consensus changed during open status=open, mode=proposing
|
||||
2018-Aug-28 22:56:22.368468202 LedgerConsensus:WRN 96A8DF9ECF5E9D087BAE9DDDE38C197D3C1C6FB842C7BB770F8929E56CC71661 to 00B1E512EF558F2FD9A0A6C263B3D922297F26A55AEB56A009341A22895B516E
|
||||
2018-Aug-28 22:56:22.368499966 LedgerConsensus:WRN {"accepted":true,"account_hash":"89A821400087101F1BF2D2B912C6A9F2788CC715590E8FA5710F2D10BF5E3C03","close_flags":0,"close_time":588812130,"close_time_human":"2018-Aug-28 22:55:30.000000000","close_time_resolution":30,"closed":true,"hash":"96A8DF9ECF5E9D087BAE9DDDE38C197D3C1C6FB842C7BB770F8929E56CC71661","ledger_hash":"96A8DF9ECF5E9D087BAE9DDDE38C197D3C1C6FB842C7BB770F8929E56CC71661","ledger_index":"3","parent_close_time":588812070,"parent_hash":"5F5CB224644F080BC8E1CC10E126D62E9D7F9BE1C64AD0565881E99E3F64688A","seqNum":"3","totalCoins":"100000000000000000","total_coins":"100000000000000000","transaction_hash":"0000000000000000000000000000000000000000000000000000000000000000"}
|
||||
LedgerConsensus:WRN View of consensus changed during open status=open, mode=proposing
|
||||
LedgerConsensus:WRN 96A8DF9ECF5E9D087BAE9DDDE38C197D3C1C6FB842C7BB770F8929E56CC71661 to 00B1E512EF558F2FD9A0A6C263B3D922297F26A55AEB56A009341A22895B516E
|
||||
LedgerConsensus:WRN {"accepted":true,"account_hash":"89A821400087101F1BF2D2B912C6A9F2788CC715590E8FA5710F2D10BF5E3C03","close_flags":0,"close_time":588812130,"close_time_human":"2018-Aug-28 22:55:30.000000000","close_time_resolution":30,"closed":true,"hash":"96A8DF9ECF5E9D087BAE9DDDE38C197D3C1C6FB842C7BB770F8929E56CC71661","ledger_hash":"96A8DF9ECF5E9D087BAE9DDDE38C197D3C1C6FB842C7BB770F8929E56CC71661","ledger_index":"3","parent_close_time":588812070,"parent_hash":"5F5CB224644F080BC8E1CC10E126D62E9D7F9BE1C64AD0565881E99E3F64688A","seqNum":"3","totalCoins":"100000000000000000","total_coins":"100000000000000000","transaction_hash":"0000000000000000000000000000000000000000000000000000000000000000"}
|
||||
```
|
||||
|
||||
{% include '_snippets/unsynced_warning_logs.md' %}
|
||||
|
||||
@@ -134,6 +134,12 @@ targets:
|
||||
"transaction-metadata.html#affectednodes": "transaction-metadata.html"
|
||||
# Fix link from untranslated peer-crawler.html:
|
||||
"peer-protocol.html#private-peers": "peer-protocol.html#プライベートピア"
|
||||
# Fix links from untranslated invariant-checking.html
|
||||
"basic-data-types.html#account-sequence": "basic-data-types.html#アカウントシーケンス"
|
||||
"xrp.html#xrp-properties": "xrp.html#xrpの特性"
|
||||
# Fix links from untranslated health-check.html:
|
||||
"rippled-server-modes.html#reasons-to-run-a-rippled-server-in-stand-alone-mode": "rippled-server-modes.html#rippledサーバーをスタンドアロンモードで実行する理由"
|
||||
"server-doesnt-sync.html#normal-syncing-behavior": "server-doesnt-sync.html#通常の同期動作"
|
||||
|
||||
|
||||
- name: xrp-api-only
|
||||
@@ -257,6 +263,15 @@ pages:
|
||||
- en
|
||||
- ja
|
||||
|
||||
# "Contribute" page ---------------------------------------------------------------
|
||||
- name: Contribute
|
||||
html: contribute.html
|
||||
template: template-contribute.html
|
||||
sidebar: disabled
|
||||
targets:
|
||||
- en
|
||||
- ja
|
||||
|
||||
# "Build" funnel ---------------------------------------------------------------
|
||||
- name: Build
|
||||
funnel: Build
|
||||
@@ -1104,6 +1119,17 @@ pages:
|
||||
targets:
|
||||
- ja
|
||||
|
||||
# TODO: translate this page and blurb
|
||||
- md: concepts/consensus-network/invariant-checking.md
|
||||
html: invariant-checking.html
|
||||
funnel: Docs
|
||||
doc_type: Concepts
|
||||
category: Consensus Network
|
||||
blurb: Understand what Invariant Checking is, why it exists, how it works, and what invariant checks are active.
|
||||
targets:
|
||||
- en
|
||||
- ja
|
||||
|
||||
- md: concepts/consensus-network/transaction-queue.md
|
||||
html: transaction-queue.html
|
||||
funnel: Build
|
||||
@@ -2669,6 +2695,12 @@ pages:
|
||||
targets:
|
||||
- ja
|
||||
|
||||
# TODO: translate this page including the blurb in its frontmatter.
|
||||
- md: tutorials/manage-the-rippled-server/configure-peering/enable-link-compression.md
|
||||
targets:
|
||||
- en
|
||||
- ja
|
||||
|
||||
- md: tutorials/manage-the-rippled-server/configure-peering/forward-ports-for-peering.md
|
||||
html: forward-ports-for-peering.html
|
||||
funnel: Build
|
||||
@@ -2863,6 +2895,18 @@ pages:
|
||||
targets:
|
||||
- en
|
||||
|
||||
# TODO: translate page and blurb
|
||||
- md: tutorials/manage-the-rippled-server/troubleshooting/health-check-interventions.md
|
||||
html: health-check-interventions.html
|
||||
funnel: Docs
|
||||
doc_type: Tutorials
|
||||
category: Manage the rippled Server
|
||||
subcategory: Troubleshooting rippled
|
||||
blurb: Use the rippled server's health check as part of automated infrastructure monitoring.
|
||||
targets:
|
||||
- en
|
||||
- ja
|
||||
|
||||
- md: tutorials/manage-the-rippled-server/troubleshooting/diagnosing-problems.ja.md
|
||||
html: diagnosing-problems.html
|
||||
funnel: Build
|
||||
@@ -5973,35 +6017,60 @@ pages:
|
||||
targets:
|
||||
- ja
|
||||
|
||||
- md: references/rippled-api/peer-crawler.md
|
||||
# TODO: translate title & blurb
|
||||
- name: Peer Port Methods
|
||||
html: peer-port-methods.html
|
||||
funnel: Docs
|
||||
doc_type: References
|
||||
supercategory: rippled API
|
||||
category: Peer Port Methods
|
||||
template: template-landing-children.html
|
||||
blurb: Special API method for sharing network topology and status metrics.
|
||||
targets:
|
||||
- en
|
||||
- ja
|
||||
|
||||
# TODO: translate page & blurb
|
||||
- md: references/rippled-api/peer-port-methods/health-check.md
|
||||
html: health-check.html
|
||||
funnel: Docs
|
||||
doc_type: References
|
||||
supercategory: rippled API
|
||||
category: Peer Port Methods
|
||||
blurb: Special API method for reporting server health.
|
||||
targets:
|
||||
- en
|
||||
- ja
|
||||
|
||||
- md: references/rippled-api/peer-port-methods/peer-crawler.md
|
||||
html: peer-crawler.html
|
||||
funnel: Build
|
||||
doc_type: References
|
||||
supercategory: rippled API
|
||||
category: Peer Crawler
|
||||
category: Peer Port Methods
|
||||
blurb: Special API method for sharing network topology and status metrics.
|
||||
targets:
|
||||
- en
|
||||
|
||||
# TODO: translate page
|
||||
- md: references/rippled-api/peer-crawler.md
|
||||
- md: references/rippled-api/peer-port-methods/peer-crawler.md
|
||||
html: peer-crawler.html
|
||||
funnel: Build
|
||||
doc_type: References
|
||||
supercategory: rippled API
|
||||
category: Peer Crawler
|
||||
category: Peer Port Methods
|
||||
blurb: ネットワークトポロジーとステータスメトリックを共有するための特殊なAPIメソッドです。
|
||||
untranslated_warning: true
|
||||
targets:
|
||||
- ja
|
||||
|
||||
# TODO: translate page & blurb
|
||||
- md: references/rippled-api/validator-list.md
|
||||
- md: references/rippled-api/peer-port-methods/validator-list.md
|
||||
html: validator-list.html
|
||||
funnel: Build
|
||||
doc_type: References
|
||||
supercategory: rippled API
|
||||
category: Validator List
|
||||
category: Peer Port Methods
|
||||
blurb: Special API method for sharing recommended validator lists.
|
||||
targets:
|
||||
- en
|
||||
@@ -6132,13 +6201,7 @@ pages:
|
||||
- ja
|
||||
|
||||
|
||||
- name: Contribute
|
||||
funnel: Contribute
|
||||
html: contribute.html
|
||||
template: template-contact.html
|
||||
targets:
|
||||
- en
|
||||
- ja
|
||||
|
||||
# --------------- end "Docs" section -------------------------------------------
|
||||
# Use Cases: removing these, to be finished later ------------------------------
|
||||
# - md: use-cases/use-cases.md
|
||||
|
||||
BIN
img/backgrounds/bg-history-mid.png
Normal file
|
After Width: | Height: | Size: 154 KiB |
BIN
img/backgrounds/bg-history-mid@2x.png
Normal file
|
After Width: | Height: | Size: 414 KiB |
BIN
img/backgrounds/bg-history-top.png
Normal file
|
After Width: | Height: | Size: 80 KiB |
BIN
img/backgrounds/bg-history-top@2x.png
Normal file
|
After Width: | Height: | Size: 222 KiB |
BIN
img/backgrounds/bg-uses-top.png
Normal file
|
After Width: | Height: | Size: 11 KiB |
BIN
img/backgrounds/bg-uses-top@2x.png
Normal file
|
After Width: | Height: | Size: 34 KiB |
BIN
img/graphics/overview-supply.png
Normal file
|
After Width: | Height: | Size: 75 KiB |
BIN
img/graphics/overview-supply@2x.png
Normal file
|
After Width: | Height: | Size: 174 KiB |
|
Before Width: | Height: | Size: 22 KiB After Width: | Height: | Size: 22 KiB |
BIN
img/icons/bw-bitcoin.png
Normal file
|
After Width: | Height: | Size: 681 B |
BIN
img/icons/bw-bitcoin@2x.png
Normal file
|
After Width: | Height: | Size: 1.3 KiB |
BIN
img/icons/bw-cash.png
Normal file
|
After Width: | Height: | Size: 546 B |
BIN
img/icons/bw-cash@2x.png
Normal file
|
After Width: | Height: | Size: 879 B |
BIN
img/icons/bw-ethereum.png
Normal file
|
After Width: | Height: | Size: 719 B |
BIN
img/icons/bw-ethereum@2x.png
Normal file
|
After Width: | Height: | Size: 1.3 KiB |
BIN
img/icons/bw-mastercard.png
Normal file
|
After Width: | Height: | Size: 640 B |
BIN
img/icons/bw-mastercard@2x.png
Normal file
|
After Width: | Height: | Size: 1.2 KiB |
BIN
img/icons/bw-visa.png
Normal file
|
After Width: | Height: | Size: 624 B |
BIN
img/icons/bw-visa@2x.png
Normal file
|
After Width: | Height: | Size: 1.3 KiB |
BIN
img/icons/bw-xrp.png
Normal file
|
After Width: | Height: | Size: 442 B |
BIN
img/icons/bw-xrp@2x.png
Normal file
|
After Width: | Height: | Size: 747 B |
BIN
img/icons/dash-line.png
Normal file
|
After Width: | Height: | Size: 130 B |
|
Before Width: | Height: | Size: 41 KiB After Width: | Height: | Size: 41 KiB |
BIN
img/impact/impact-building-future.png
Normal file
|
After Width: | Height: | Size: 58 KiB |
BIN
img/impact/impact-building-future@2x.png
Normal file
|
After Width: | Height: | Size: 160 KiB |
|
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 10 KiB |
|
Before Width: | Height: | Size: 21 KiB After Width: | Height: | Size: 21 KiB |
|
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 16 KiB |
|
Before Width: | Height: | Size: 35 KiB After Width: | Height: | Size: 35 KiB |
BIN
img/logos/github.png
Normal file
|
After Width: | Height: | Size: 1.7 KiB |
BIN
img/logos/xpring.png
Normal file
|
After Width: | Height: | Size: 1.8 KiB |
|
Before Width: | Height: | Size: 11 KiB |
@@ -122,6 +122,10 @@ td:nth-child(1) {
|
||||
box-sizing: border-box;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
border-radius: 8px;
|
||||
&-50 {
|
||||
flex-basis: calc(50% - 30px);
|
||||
}
|
||||
}
|
||||
@media (max-width: 768px) {
|
||||
.square {
|
||||
|
||||
@@ -58,6 +58,12 @@ a:hover {
|
||||
.bold {
|
||||
font-weight: bold;
|
||||
}
|
||||
.text-large {
|
||||
font-size: 1.125rem;
|
||||
}
|
||||
.text-smallest {
|
||||
font-size: 0.625rem;
|
||||
}
|
||||
|
||||
/* Japanese language font override ------------------------------------------ */
|
||||
|
||||
|
||||
@@ -1,4 +1,10 @@
|
||||
/* HEIGHT AND WIDTH HELPERS */
|
||||
.h32 {
|
||||
height: 32px;
|
||||
}
|
||||
.w32 {
|
||||
width: 32px;
|
||||
}
|
||||
.h36 {
|
||||
height: 36px;
|
||||
}
|
||||
@@ -8,6 +14,9 @@
|
||||
.w40 {
|
||||
width: 40px;
|
||||
}
|
||||
.w44 {
|
||||
width: 44px;
|
||||
}
|
||||
.w48 {
|
||||
width: 48px;
|
||||
}
|
||||
@@ -111,4 +120,7 @@
|
||||
}
|
||||
.ls-none {
|
||||
list-style: none;
|
||||
}
|
||||
.no-wrap {
|
||||
white-space: nowrap;
|
||||
}
|
||||
@@ -53,6 +53,7 @@
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* COMPONENTS */
|
||||
.border-green {
|
||||
border: 1px solid $primary;
|
||||
@@ -307,4 +308,26 @@
|
||||
background-image: url(../../img/backgrounds/bg-overview-top.png);
|
||||
background-repeat: no-repeat;
|
||||
background-position: right 0;
|
||||
}
|
||||
|
||||
#page-history-bg {
|
||||
background-image: url(../../img/backgrounds/bg-history-mid.png);
|
||||
background-repeat: no-repeat;
|
||||
background-position: right 60%;
|
||||
}
|
||||
|
||||
#page-history-top {
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 302px;
|
||||
}
|
||||
|
||||
#page-uses-top {
|
||||
|
||||
}
|
||||
|
||||
#table-overview {
|
||||
td:nth-child(1){
|
||||
width: 40%;
|
||||
}
|
||||
}
|
||||
@@ -20,7 +20,7 @@
|
||||
<section class="row mb-49">
|
||||
<h6 class="section-marker">Sustainability</h6>
|
||||
<div class="col-sm-4">
|
||||
<img src="../assets/img/green-graphic.png" class="mw-100">
|
||||
<img src="./img/green-graphic.png" class="mw-100">
|
||||
</div>
|
||||
<div class="col-sm-8">
|
||||
<h3 class="h1 mb-4 mt-12">How Green Is Your Currency?</h3>
|
||||
@@ -69,38 +69,38 @@
|
||||
<div class="d-viz d-viz-1">
|
||||
<ul class="d-sm-flex justify-content-between p-0">
|
||||
<li class="d-output d-crypto active" data-comp="kWh" data-type="btc">
|
||||
<img src="../assets/img/Portugal.png" class="mw-100">
|
||||
<img src="./img/Portugal.png" class="mw-100">
|
||||
<div class="dot"></div>
|
||||
<p>Bitcoin</p>
|
||||
<h5 id="kWh-btc"></h5>
|
||||
<p>kWh</p>
|
||||
</li>
|
||||
<li class="d-output d-crypto active" data-comp="kWh" data-type="eth">
|
||||
<img src="../assets/img/Portugal.png" class="mw-100">
|
||||
<img src="./img/Portugal.png" class="mw-100">
|
||||
<p>Ethereum</p>
|
||||
<h5 id="kWh-eth"></h5>
|
||||
<p>kWh</p>
|
||||
</li>
|
||||
<li class="d-output d-cash" data-comp="kWh" data-type="pap">
|
||||
<img src="../assets/img/Portugal.png" class="mw-100">
|
||||
<img src="./img/Portugal.png" class="mw-100">
|
||||
<p>Cash</p>
|
||||
<h5 id="kWh-pap"></h5>
|
||||
<p>kWh</p>
|
||||
</li>
|
||||
<li class="d-output d-crypto d-credit d-cash active" data-comp="kWh" data-type="xrp">
|
||||
<img src="../assets/img/Portugal.png" class="mw-100">
|
||||
<img src="./img/Portugal.png" class="mw-100">
|
||||
<p>XRP</p>
|
||||
<h5 id="kWh-xrp"></h5>
|
||||
<p>kWh</p>
|
||||
</li>
|
||||
<li class="d-output d-credit" data-comp="kWh" data-type="vsa">
|
||||
<img src="../assets/img/Portugal.png" class="mw-100">
|
||||
<img src="./img/Portugal.png" class="mw-100">
|
||||
<p>Visa</p>
|
||||
<h5 id="kWh-vsa"></h5>
|
||||
<p>kWh</p>
|
||||
</li>
|
||||
<li class="d-output d-credit" data-comp="kWh" data-type="mst">
|
||||
<img src="../assets/img/Portugal.png" class="mw-100">
|
||||
<img src="./img/Portugal.png" class="mw-100">
|
||||
<p>Mastercard</p>
|
||||
<h5 id="kWh-mst"></h5>
|
||||
<p>kWh</p>
|
||||
@@ -181,37 +181,37 @@
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="fs-5-5 bold"><div class="w48 mr-3 text-center d-inline-block"><img class="h36" src="../assets/img/Bitcoin@2x.png"></div>Bitcoin</td>
|
||||
<td class="fs-5-5 bold"><div class="w48 mr-3 text-center d-inline-block"><img class="h36" src="./img/Bitcoin@2x.png"></div>Bitcoin</td>
|
||||
<td class="fs-6 ta-right">700<span class="dblue">.0000</span><span class="ratio"> KWh/tx</span></td>
|
||||
<td class="fs-6 ta-right">700<span class="dblue">.0000</span><span class="ratio"> KWh/tx</span></td>
|
||||
<td class="fs-6 ta-right">700<span class="dblue">.0000</span><span class="ratio"> KWh/tx</span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="fs-5-5 bold"><div class="w48 mr-3 text-center d-inline-block"><img class="h36" src="../assets/img/Ethereum@2x.png"></div>Ethereum</td>
|
||||
<td class="fs-5-5 bold"><div class="w48 mr-3 text-center d-inline-block"><img class="h36" src="./img/Ethereum@2x.png"></div>Ethereum</td>
|
||||
<td class="fs-6 ta-right">30<span class="dblue">.0000</span><span class="ratio"> KWh/tx</span></td>
|
||||
<td class="fs-6 ta-right">30<span class="dblue">.0000</span><span class="ratio"> KWh/tx</span></td>
|
||||
<td class="fs-6 ta-right">30<span class="dblue">.0000</span><span class="ratio"> KWh/tx</span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="fs-5-5 bold"><div class="w48 mr-3 text-center d-inline-block"><img class="h36" src="../assets/img/XRP-Mark@2x.png"></div>XRP</td>
|
||||
<td class="fs-5-5 bold"><div class="w48 mr-3 text-center d-inline-block"><img class="h36" src="./img/XRP-Mark@2x.png"></div>XRP</td>
|
||||
<td class="fs-6 ta-right">0.0079<span class="ratio"> KWh/tx</span></td>
|
||||
<td class="fs-6 ta-right">0.0079<span class="ratio"> KWh/tx</span></td>
|
||||
<td class="fs-6 ta-right">0.0079<span class="ratio"> KWh/tx</span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="fs-5-5 bold"><div class="w48 mr-3 text-center d-inline-block"><img class="w40" src="../assets/img/Visa@2x.png"></div>Visa</td>
|
||||
<td class="fs-5-5 bold"><div class="w48 mr-3 text-center d-inline-block"><img class="w40" src="./img/Visa@2x.png"></div>Visa</td>
|
||||
<td class="fs-6 ta-right">0.0008<span class="ratio"> KWh/tx</span></td>
|
||||
<td class="fs-6 ta-right">0.0008<span class="ratio"> KWh/tx</span></td>
|
||||
<td class="fs-6 ta-right">0.0008<span class="ratio"> KWh/tx</span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="fs-5-5 bold"><div class="w48 mr-3 text-center d-inline-block"><img class="w40" src="../assets/img/MasterCard@2x.png"></div>Mastercard</td>
|
||||
<td class="fs-5-5 bold"><div class="w48 mr-3 text-center d-inline-block"><img class="w40" src="./img/MasterCard@2x.png"></div>Mastercard</td>
|
||||
<td class="fs-6 ta-right">0.0006<span class="ratio"> KWh/tx</span></td>
|
||||
<td class="fs-6 ta-right">0.0006<span class="ratio"> KWh/tx</span></td>
|
||||
<td class="fs-6 ta-right">0.0006<span class="ratio"> KWh/tx</span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="fs-5-5 bold"><div class="w48 mr-3 text-center d-inline-block"><img class="w40" src="../assets/img/paper-money@2x.png"></div>Paper</td>
|
||||
<td class="fs-5-5 bold"><div class="w48 mr-3 text-center d-inline-block"><img class="w40" src="./img/paper-money@2x.png"></div>Paper</td>
|
||||
<td class="fs-6 ta-right">0.044<span class="dblue">0</span><span class="ratio"> KWh/tx</span></td>
|
||||
<td class="fs-6 ta-right">0.044<span class="dblue">0</span><span class="ratio"> KWh/tx</span></td>
|
||||
<td class="fs-6 ta-right">0.044<span class="dblue">0</span><span class="ratio"> KWh/tx</span></td>
|
||||
|
||||
@@ -1,64 +0,0 @@
|
||||
{% extends "template-base.html" %}
|
||||
{% block head %}
|
||||
|
||||
<!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
|
||||
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
|
||||
<!--[if lt IE 9]>
|
||||
<script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
|
||||
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
|
||||
<![endif]-->
|
||||
|
||||
{% endblock %}
|
||||
|
||||
{% block bodyclasses %}no-sidebar{% endblock %}
|
||||
{% block mainclasses %}landing{% endblock %}
|
||||
|
||||
{% block breadcrumbs %}{% endblock %}
|
||||
|
||||
{% block main %}
|
||||
<div class="container my-40 marketing-wrapper">
|
||||
<section class="row mb-50">
|
||||
<div class="col-md-5">
|
||||
<h6 class="text-primary mb-4">{% trans %}Contribute to XRPL.org{% endtrans %}</h6>
|
||||
<h1 class="mb-10">{% trans %}How to Suggest Changes to the Site{% endtrans %}</h1>
|
||||
<p>{% trans %}Thank you for your interest in contributing to XRPL.org.{% endtrans %}</p>
|
||||
<p>{% trans %}This website was created for the community and is meant to be a living, breathing source of truth for XRP resources.{% endtrans %}</p>
|
||||
<p>{% trans %}If you’d like to recommend new content, please fill out the form or submit your changes in GitHub.{% endtrans %}</p>
|
||||
</div>
|
||||
<div class="col-md-6 offset-md-1">
|
||||
<form id="contact-form" method="post" action="contact-form-handler.php">
|
||||
<label class="text-primary bold h6" for="name">Name*</label>
|
||||
<input type="text" name="name" placeholder="Your Name" required>
|
||||
<label class="text-primary bold h6 mt-4" for="email">Email*</label>
|
||||
<input type="email" name="email" placeholder="Your Email" required>
|
||||
<label class="text-primary bold h6 mt-4" for="message">Message*</label>
|
||||
<textarea name="message" placeholder="Message" required name="message"></textarea>
|
||||
<input type="submit" class="form-control submit mt-4" value="Submit">
|
||||
</form>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="row mb-50">
|
||||
<div class="col-md-4 offset-md-1 order-1 order-md-2 mb-10">
|
||||
<img class="mw-100 mb-10" src="./img/marketing/impact-democratizing-payments@2x.png">
|
||||
</div>
|
||||
<div class="col-md-6 offset-md-1 order-2 order-md-1">
|
||||
<h2 class="mb-10 h1">{% trans %}For Developers{% endtrans %}</h2>
|
||||
<p class="mb-10 normal">{% trans %}Contributing to the developer portal of XRPL.org is a great way to learn about the XRP Ledger.{% endtrans %}</p>
|
||||
<p>{% trans %}You may also be interested in learning about Interledger Protocol (ILP), which, along with the XRP Ledger, is another part of the Xpring developer ecosystem.{% endtrans %}</p>
|
||||
<p>{% trans %}If you choose to submit your changes to the site through TGitHub, please read and consider the contributing guidelines.{% endtrans %}</p>
|
||||
<a href="#" class="btn btn-clear">{% trans %}Learn About On-Demand Liquidity{% endtrans %}</a>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
|
||||
</div>
|
||||
{% endblock %}
|
||||
|
||||
|
||||
{% block endbody %}
|
||||
<script src="https://www.google.com/recaptcha/api.js"></script>
|
||||
<script type="application/javascript">
|
||||
gtag('config', 'UA-157720658-3', {'content_group1': 'Hub Pages'});
|
||||
</script>
|
||||
{% endblock %}
|
||||
75
tool/template-contribute.html
Normal file
@@ -0,0 +1,75 @@
|
||||
{% extends "template-base.html" %}
|
||||
{% block head %}
|
||||
|
||||
<!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
|
||||
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
|
||||
<!--[if lt IE 9]>
|
||||
<script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
|
||||
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
|
||||
<![endif]-->
|
||||
|
||||
{% endblock %}
|
||||
|
||||
{% block bodyclasses %}no-sidebar{% endblock %}
|
||||
{% block mainclasses %}landing{% endblock %}
|
||||
|
||||
{% block breadcrumbs %}{% endblock %}
|
||||
|
||||
{% block main %}
|
||||
<div class="marketing-wrapper">
|
||||
<div class="container mt-40 mb-30">
|
||||
<section class="row mb-50">
|
||||
<div class="col-md-5">
|
||||
<div class="d-flex flex-column-reverse justify-content-end">
|
||||
<h1 class="mb-10">{% trans %}Join the Conversation{% endtrans %}</h1>
|
||||
<h6 class="text-primary mb-4">{% trans %}Find Your Voice{% endtrans %}</h6>
|
||||
</div>
|
||||
<p>{% trans %}Thank you for your interest in contributing to XRPL.org.{% endtrans %}</p>
|
||||
<p>{% trans %}This website was created for the community and is meant to be a living, breathing source of truth for XRP resources.{% endtrans %}</p>
|
||||
<p>{% trans %}If you'd like to recommend new content or provide feedback, see these community resources:{% endtrans %}</p>
|
||||
</div>
|
||||
<div class="col-md-6 offset-md-1 mb-10 mt-10">
|
||||
<div class="d-flex flex-wrap w-100">
|
||||
<a class="square square-50 d-flex card-b" href="#">
|
||||
<div class="align-center align-self-end">
|
||||
<img class="mw-100 mx-autod-block" src="./img/logos/xpring.png" style="margin-bottom: 48px;">
|
||||
<p class="btn btn-clear d-block">Xpring Forum</p>
|
||||
</div>
|
||||
</a>
|
||||
<a class="square square-50 d-flex card-b" href="#">
|
||||
<div class="align-center align-self-end">
|
||||
<img class="mw-100 mx-auto d-block" src="./img/overview/real.png" style="height: 83px; margin-bottom: 26px;">
|
||||
<p class="btn btn-clear d-block">XRP Chat Forum</p>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="row mb-30">
|
||||
<div class="col-md-6 offset-md-1 order-2 mb-10">
|
||||
<div class="d-flex flex-wrap w-100">
|
||||
<a class="square square-50 d-flex card-b" href="#">
|
||||
<img class="mw-100" src="./img/logos/github.png">
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-5 order-1">
|
||||
<h2 class="mb-10 h1">{% trans %}For Developers{% endtrans %}</h2>
|
||||
<p class="mb-10 normal">{% trans %}Contributing to XRPL.org is a great way to learn about the XRP Ledger. This portal is open-source and anyone can suggest changes. For more information, please <a href="#">read and consider the contributing guidelines</a>.{% endtrans %}</p>
|
||||
<p>{% trans %}You may also be interested in learning about <a href="#">Interledger</a>, <a href="#">Xpring</a>, and <a href="#">PayID</a>.{% endtrans %}</p>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
|
||||
</div>
|
||||
<img id="page-contribute-bot" src="./img/backgrounds/bg-contribute.png">
|
||||
</div>
|
||||
{% endblock %}
|
||||
|
||||
|
||||
{% block endbody %}
|
||||
<script type="application/javascript">
|
||||
gtag('config', 'UA-157720658-3', {'content_group1': 'Hub Pages'});
|
||||
</script>
|
||||
{% endblock %}
|
||||
@@ -46,60 +46,60 @@
|
||||
</section>
|
||||
|
||||
<section class="row mb-50">
|
||||
<h6 class="section-marker">Businesses Using XRP</h6>
|
||||
<h6 class="section-marker">{% trans %}Businesses Using XRP{% endtrans %}</h6>
|
||||
<div class="col-md-5 mb-20 card-b">
|
||||
<img class="mw-100" src="./img/businesses/bitgo.png">
|
||||
<h3 class="my-10 h4">Asset Custody</h3>
|
||||
<p>BitGo provides custodial and non-custodial asset holdings for digital assets including XRP. BitGo's enterprise-level security empowers businesses to integrate digital currencies like XRP into new and existing financial systems.</p>
|
||||
<h3 class="my-10 h4">{% trans %}Asset Custody{% endtrans %}</h3>
|
||||
<p>{% trans %}BitGo provides custodial and non-custodial asset holdings for digital assets including XRP. BitGo's enterprise-level security empowers businesses to integrate digital currencies like XRP into new and existing financial systems.{% endtrans %}</p>
|
||||
</div>
|
||||
<div class="col-md-5 mb-20 card-b offset-md-1">
|
||||
<img class="mw-100" src="./img/businesses/bitpay.png">
|
||||
<h3 class="my-10 h4">Payment Processing</h3>
|
||||
<p>BitPay builds powerful, enterprise-grade tools for accepting and spending cryptocurrencies, including XRP.</p>
|
||||
<h3 class="my-10 h4">{% trans %}Payment Processing{% endtrans %}</h3>
|
||||
<p>{% trans %}BitPay builds powerful, enterprise-grade tools for accepting and spending cryptocurrencies, including XRP.{% endtrans %}</p>
|
||||
</div>
|
||||
<div class="col-md-5 mb-20 card-b">
|
||||
<img class="mw-100" src="./img/businesses/coil.png">
|
||||
<h3 class="my-10 h4">Web Monetization</h3>
|
||||
<p>Coil provides an alternative to the status quo of paid advertisements with web monetization. Coil's web monetization uses the interledger protocol (ILP) to stream micropayments as users consume content. The XRP Ledger's payment channels provide an ideal system for settling these micropayments at high speed and low cost.</p>
|
||||
<h3 class="my-10 h4">{% trans %}Web Monetization{% endtrans %}</h3>
|
||||
<p>{% trans %}Coil provides an alternative to the status quo of paid advertisements with web monetization. Coil's web monetization uses the interledger protocol (ILP) to stream micropayments as users consume content. The XRP Ledger's payment channels provide an ideal system for settling these micropayments at high speed and low cost.{% endtrans %}</p>
|
||||
</div>
|
||||
<div class="col-md-5 mb-20 card-b offset-md-1">
|
||||
<img class="mw-100" src="./img/businesses/forte.png">
|
||||
<h3 class="my-10 h4">Online Gaming</h3>
|
||||
<p>Forte offers an unprecedented set of easy-to-use tools and services for game developers to integrate blockchain technology into their games, to unlock new economic and creative opportunities for gamers across the world.</p>
|
||||
<h3 class="my-10 h4">{% trans %}Online Gaming{% endtrans %}</h3>
|
||||
<p>{% trans %}Forte offers an unprecedented set of easy-to-use tools and services for game developers to integrate blockchain technology into their games, to unlock new economic and creative opportunities for gamers across the world.{% endtrans %}</p>
|
||||
</div>
|
||||
<div class="col-md-5 mb-20 card-b">
|
||||
<img class="mw-100" src="./img/businesses/exodus.png">
|
||||
<h3 class="my-10 h4">Wallets and Apps</h3>
|
||||
<p>Exodus offers wallets and applications for securing, managing and exchanging crypto.</p>
|
||||
<h3 class="my-10 h4">{% trans %}Wallets and Apps{% endtrans %}</h3>
|
||||
<p>{% trans %}Exodus offers wallets and applications for securing, managing and exchanging crypto.{% endtrans %}</p>
|
||||
</div>
|
||||
<div class="col-md-5 mb-20 card-b offset-md-1">
|
||||
<img class="mw-100" src="./img/businesses/raised-in-space.png">
|
||||
<h3 class="my-10 h4">Music</h3>
|
||||
<p>Raised in Space is a music/tech investment group focused on raising the value of music, innovating across the entire value chain of the music industry.</p>
|
||||
<h3 class="my-10 h4">{% trans %}Music{% endtrans %}</h3>
|
||||
<p>{% trans %}Raised in Space is a music/tech investment group focused on raising the value of music, innovating across the entire value chain of the music industry.{% endtrans %}</p>
|
||||
</div>
|
||||
<div class="col-md-5 mb-20 card-b">
|
||||
<img class="mw-100" src="./img/businesses/ripple.png">
|
||||
<h3 class="my-10 h4">On-Demand Liquidity</h3>
|
||||
<p>Ripple powers instant, lower-cost settlement of cross-border payments using XRP to source liquidity on demand. XRP is ideally suited for global payments because it's quicker, less costly, and more scalable than any other digital asset.</p>
|
||||
<h3 class="my-10 h4">{% trans %}On-Demand Liquidity{% endtrans %}</h3>
|
||||
<p>{% trans %}Ripple powers instant, lower-cost settlement of cross-border payments using XRP to source liquidity on demand. XRP is ideally suited for global payments because it's quicker, less costly, and more scalable than any other digital asset.{% endtrans %}</p>
|
||||
</div>
|
||||
<div class="col-md-5 mb-20 card-b offset-md-1">
|
||||
<img class="mw-100" src="./img/businesses/towo-labs.png">
|
||||
<h3 class="my-10 h4">Infrastructure</h3>
|
||||
<p>Towo Labs was founded in 2019, to develop XRP Ledger and Interledger infrastructures and make non-custodial crypto management easier.</p>
|
||||
<h3 class="my-10 h4">{% trans %}Infrastructure{% endtrans %}</h3>
|
||||
<p>{% trans %}Towo Labs was founded in 2019, to develop XRP Ledger and Interledger infrastructures and make non-custodial crypto management easier.{% endtrans %}</p>
|
||||
</div>
|
||||
<div class="col-md-5 mb-20 card-b">
|
||||
<img class="mw-100" src="./img/businesses/xrplorer.png">
|
||||
<h3 class="my-10 h4">Security</h3>
|
||||
<p>Xrplorer offers services and tools that help prevent and combat fraudulent activity on the XRPL as well as custom APIs and analytics that supplement the XRPL APIs where they are not enough.</p>
|
||||
<h3 class="my-10 h4">{% trans %}Security{% endtrans %}</h3>
|
||||
<p>{% trans %}Xrplorer offers services and tools that help prevent and combat fraudulent activity on the XRPL as well as custom APIs and analytics that supplement the XRPL APIs where they are not enough.{% endtrans %}</p>
|
||||
</div>
|
||||
<div class="col-md-5 mb-20 card-b offset-md-1">
|
||||
<img class="mw-100" src="./img/businesses/xrpl-labs.png">
|
||||
<h3 class="my-10 h4">Applications</h3>
|
||||
<p>From cold storage to apps for signing transactions, XRPL Labs is dedicated to building software on the XRP Ledger.</p>
|
||||
<h3 class="my-10 h4">{% trans %}Applications{% endtrans %}</h3>
|
||||
<p>{% trans %}From cold storage to apps for signing transactions, XRPL Labs is dedicated to building software on the XRP Ledger.{% endtrans %}</p>
|
||||
</div>
|
||||
<div class="w-100"></div>
|
||||
<div class="col-md-4 offset-md-6">
|
||||
<p style="font-size: 10px;">Disclaimer: XRPL.org does not endorse or recommend any wallets or exchanges, or make any representations with respect to wallets. It’s advisable to conduct your own due diligence before relying on any third party or third-party technology.</p>
|
||||
<p class="text-smallest">{% trans %}Disclaimer: XRPL.org does not endorse or recommend any wallets or exchanges, or make any representations with respect to wallets. It’s advisable to conduct your own due diligence before relying on any third party or third-party technology.{% endtrans %}</p>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
|
||||
@@ -19,20 +19,20 @@
|
||||
<div id="page-exchanges-bg">
|
||||
<div class="container my-40 marketing-wrapper">
|
||||
<section class="row mt-40 mb-40">
|
||||
<div class="col-sm-4 mb-10">
|
||||
<h3 class="text-primary mb-4 h6">XRP Exchanges</h3>
|
||||
<h1 class="mb-18">XRP Is Traded on More Than 100 Markets and Exchanges Worldwide</h1>
|
||||
<div class="col-sm-4 mb-10 d-flex flex-column-reverse justify-content-end">
|
||||
<h1 class="mb-18">{% trans %}XRP Is Traded on More Than 100 Markets and Exchanges Worldwide{% endtrans %}</h1>
|
||||
<h3 class="text-primary mb-4 h6">{% trans %}XRP Exchanges{% endtrans %}</h3>
|
||||
</div>
|
||||
<div class="col-sm-6 offset-sm-1">
|
||||
<h2 class="mt-12 mb-10">Exchanges are where people trade currencies.</h2>
|
||||
<p>There are different types of exchanges that vary depending on the type of market (spot, futures, options, swaps), and the type of security model (custodial, non-custodial).</p>
|
||||
<p>Spot exchanges allow people to buy and sell cryptocurrencies at current (spot) market rates. Futures, options and swap exchanges allow people to buy and sell standardized contracts of cryptocurrency market rates in the future.</p>
|
||||
<p>Custodial exchanges manage a user’s private keys, and publish centralized order books of buyers and sellers. Non-custodial exchanges, also known as decentralized exchanges, do not manage a user’s private keys, and publish decentralized order books of buyers and sellers on a blockchain.</p>
|
||||
<h2 class="mt-12 mb-10">{% trans %}Exchanges are where people trade currencies.{% endtrans %}</h2>
|
||||
<p>{% trans %}There are different types of exchanges that vary depending on the type of market (spot, futures, options, swaps), and the type of security model (custodial, non-custodial).{% endtrans %}</p>
|
||||
<p>{% trans %}Spot exchanges allow people to buy and sell cryptocurrencies at current (spot) market rates. Futures, options and swap exchanges allow people to buy and sell standardized contracts of cryptocurrency market rates in the future.{% endtrans %}</p>
|
||||
<p>{% trans %}Custodial exchanges manage a user’s private keys, and publish centralized order books of buyers and sellers. Non-custodial exchanges, also known as decentralized exchanges, do not manage a user’s private keys, and publish decentralized order books of buyers and sellers on a blockchain.{% endtrans %}</p>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="mb-50 row">
|
||||
<h5 class="ml-3 mb-3">Top Exchanges:</h5>
|
||||
<h5 class="ml-3 mb-3">{% trans %}Top Exchanges, according to CryptoCompare (as of August 2020):{% endtrans %}</h5>
|
||||
<div class="w-100"></div>
|
||||
<div class="d-flex flex-wrap w-100">
|
||||
<a class="square d-flex card-b" href="#">
|
||||
@@ -67,7 +67,7 @@
|
||||
</a>
|
||||
</div>
|
||||
<div class="w-100"></div>
|
||||
<p class="col-sm-4 offset-sm-8 mt-16" style="font-size: 10px;">Disclaimer: This information is drawn from other sources on the internet. XRPL.org does not endorse or recommend any exchanges or make any representations with respect to exchanges or the purchase or sale of digital assets more generally. It’s advisable to conduct your own due diligence before relying on any third party or third-party technology, and providers may vary significantly in their compliance, data security, and privacy practices.</p>
|
||||
<p class="col-sm-4 offset-sm-8 mt-16 text-smallest">{% trans %}Disclaimer: This information is drawn from other sources on the internet. XRPL.org does not endorse or recommend any exchanges or make any representations with respect to exchanges or the purchase or sale of digital assets more generally. It’s advisable to conduct your own due diligence before relying on any third party or third-party technology, and providers may vary significantly in their compliance, data security, and privacy practices.{% endtrans %}</p>
|
||||
</section>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -20,18 +20,18 @@
|
||||
<div class="container my-40 marketing-wrapper">
|
||||
|
||||
<section class="row mt-40 mb-40">
|
||||
<div class="col-sm-4 mb-10">
|
||||
<h3 class="text-primary mb-4 h6">XRP Wallets</h3>
|
||||
<h1 class="mb-18">Options for Storing XRP</h1>
|
||||
<div class="col-sm-3 mb-10 d-flex flex-column-reverse justify-content-end">
|
||||
<h1 class="mb-18">{% trans %}Options for Storing XRP{% endtrans %}</h1>
|
||||
<h3 class="text-primary mb-4 h6">{% trans %}XRP Wallets{% endtrans %}</h3>
|
||||
</div>
|
||||
<div class="col-sm-6 offset-sm-1">
|
||||
<h2 class="mt-12 mb-10">Digital wallets are pieces of software that allow people to send, receive, and store cryptocurrencies, including XRP. There are two types of digital wallets: custodia and non-custodial.</h2>
|
||||
<p>Custodial wallets manage a user's private key, which allows the wallet to withdraw crypto currency on a user's behalf. Non-custodial wallets do not manage a user's private key, which is up to the user to manage, and therefore cannot send crypto currency on the user's behalf.</p>
|
||||
<div class="col-sm-7 offset-sm-1">
|
||||
<h2 class="mt-12 mb-10">{% trans %}Digital wallets are pieces of software that allow people to send, receive and store cryptocurrencies, including XRP. There are two types of digital wallets: custodial and non-custodial.{% endtrans %}</h2>
|
||||
<p>{% trans %}Custodial wallets manage a user's private key, which allows the wallet to withdraw cryptocurrency on a user's behalf. Non-custodial wallets do not manage a user's private key, which is up to the user to manage, and therefore cannot send cryptocurrency on the user's behalf.{% endtrans %}</p>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="mb-50 row">
|
||||
<h5 class="ml-3 mb-3">XRPL Trusted Exchanges:</h5>
|
||||
<h5 class="ml-3 mb-3">{% trans %}XRPL Trusted Exchanges:{% endtrans %}</h5>
|
||||
<div class="w-100"></div>
|
||||
<div class="d-flex flex-wrap w-100 mb-10">
|
||||
<a class="square d-flex card-b" href="#">
|
||||
@@ -47,7 +47,7 @@
|
||||
<img class="mw-100" src="./img/wallets/harbor-wallet.png">
|
||||
</a>
|
||||
</div>
|
||||
<h5 class="ml-3 mb-3">Hardware Exchanges:</h5>
|
||||
<h5 class="ml-3 mb-3">{% trans %}Hardware Exchanges:{% endtrans %}</h5>
|
||||
<div class="d-flex flex-wrap w-100">
|
||||
<a class="square d-flex card-b" href="#">
|
||||
<img class="mw-100" src="./img/wallets/trezor.png">
|
||||
@@ -60,7 +60,7 @@
|
||||
</a>
|
||||
</div>
|
||||
<div class="w-100"></div>
|
||||
<p class="col-sm-4 offset-sm-8 mt-16" style="font-size: 10px;">Disclaimer: XRPL.org does not endorse or recommend any wallets or make any representations with respect to wallets or the purchase or sale of digital assets more generally. It’s advisable to conduct your own due diligence before relying on any third party or third-party technology, and providers may vary significantly in their compliance, data security, and privacy practices.</p>
|
||||
<p class="col-sm-4 offset-sm-8 mt-16 text-smallest">{% trans %}Disclaimer: XRPL.org does not endorse or recommend any wallets or make any representations with respect to wallets or the purchase or sale of digital assets more generally. It’s advisable to conduct your own due diligence before relying on any third party or third-party technology, and providers may vary significantly in their compliance, data security, and privacy practices.{% endtrans %}</p>
|
||||
</section>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -22,7 +22,9 @@
|
||||
<h6 class="section-marker" id="home-hero-marker">{% trans %}Scroll Down{% endtrans %}</h6>
|
||||
<img class="mw-100" src="./img/graphics/home-hero-graphic.svg">
|
||||
<div class="col-md-6 mx-auto text-center my-5">
|
||||
<h1 class="mb-18">{% trans %}The Best Digital Asset for Payments{% endtrans %}</h1>
|
||||
<h1 class="mb-18">{% trans %}XRP: The Best Digital Asset for Payments{% endtrans %}</h1>
|
||||
<a href="#" class="btn btn-clear inline-block mr-4">{% trans %}Learn More{% endtrans %}</a>
|
||||
<a href="#" class="btn btn-clear inline-block">{% trans %}Build with XRP{% endtrans %}</a>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
@@ -32,8 +34,8 @@
|
||||
<div class="row mb-20 ml-0 mr-0">
|
||||
<div class="col-lg-4 offset-lg-2">
|
||||
<p class="text-green bold">{% trans %}What is XRPL.org?{% endtrans %}</p>
|
||||
<h2 class="mb-10">{% trans %}A Community-Driven Resource for All Things XRP and XRP Ledger.{% endtrans %}</h2>
|
||||
<p>{% trans %}Whether you’re a developer building on XRPL or just getting acquainted with blockchain and digital assets, XRPL.org is your source for technical information, reference materials, tools and all things XRP.{% endtrans %}</p>
|
||||
<h2 class="mb-10">{% trans %}A Community-Driven Resource for All Things XRP and XRP Ledger{% endtrans %}</h2>
|
||||
<p>{% trans %}Whether you’re a developer building on the XRP Ledger (XRPL) or just getting acquainted with blockchain and digital assets, XRPL.org is your source for technical information, reference materials, tools and all things XRP.{% endtrans %}</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -67,8 +69,8 @@
|
||||
<div class="col-lg-4 offset-lg-1">
|
||||
<p class="text-green bold">{% trans %}What is XRP?{% endtrans %}</p>
|
||||
<h2 class="mb-10">{% trans %}A Digital Asset Built for Payments{% endtrans %}</h2>
|
||||
<p class="mb-4">{% trans %}XRP is the native digital asset on the XRP Ledger—an open-source, permissionless and decentralized blockchain technology that can settle transactions in 3-5 seconds.{% endtrans %}</p>
|
||||
<p class="mb-4">{% trans %}Using XRP is the best way to move money around the world; the fuel for our growing digital economy.{% endtrans %}</p>
|
||||
<p class="mb-4">{% trans %}XRP is a digital asset built for payments. It is the native digital asset on the XRP Ledger—an open-source, permissionless and decentralized blockchain technology that can settle transactions in 3-5 seconds.{% endtrans %}</p>
|
||||
<p class="mb-4">{% trans %}It is the best way to move money around the world; the fuel for our growing digital economy.{% endtrans %}</p>
|
||||
|
||||
<a href="#" class="btn btn-clear mr-4">{% trans %}Learn about XRP{% endtrans %}</a>
|
||||
<a href="#" class="arrow-link mt-4 text-green d-block"><span class="text-white">{% trans %}XRP History{% endtrans %}</span></a>
|
||||
@@ -83,7 +85,7 @@
|
||||
<div class="col-md-6 col-lg-4 mb-10">
|
||||
<div class="card rounded hc" id="hc-1">
|
||||
<h5 class="mb-12 h2">{% trans %}Uses of XRP{% endtrans %}</h5>
|
||||
<p>{% trans %}XRP is helping solve previously unsolvable problems for people and industries around the world, and is the only digital asset with a commercial use case.{% endtrans %}</p>
|
||||
<p>{% trans %}XRP is helping solve previously unsolvable problems for people and industries around the world, and is one of the only digital assets with a commercial use case.{% endtrans %}</p>
|
||||
<a href="" class="arrow-link mt-12 text-white">{% trans %}Explore Uses{% endtrans %}</a>
|
||||
</div>
|
||||
</div>
|
||||
@@ -97,7 +99,7 @@
|
||||
<div class="col-md-6 col-lg-4 mb-10">
|
||||
<div class="card rounded hc" id="hc-3">
|
||||
<h5 class="mb-12 h2">{% trans %}Real-World Impact{% endtrans %}</h5>
|
||||
<p>{% trans %}With its real-world utility and inherently green design, XRP will help ensure a more sustainable future for our planet and global economy.{% endtrans %}</p>
|
||||
<p class="pb-lg-4">{% trans %}With its real-world utility and inherently green design, XRP helps ensure a more sustainable future for our planet and global economy.{% endtrans %}</p>
|
||||
<a href="" class="arrow-link mt-12 text-white">{% trans %}Explore Impact{% endtrans %}</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -16,7 +16,9 @@
|
||||
{% block breadcrumbs %}{% endblock %}
|
||||
|
||||
{% block main %}
|
||||
<div class="container my-40 marketing-wrapper">
|
||||
<div id="page-history-bg">
|
||||
<div class="container my-40 marketing-wrapper">
|
||||
<img id="page-history-top" src="./img/backgrounds/bg-history-top.png">
|
||||
<section class="row mt-40 mb-40">
|
||||
<div class="col-sm-4 mb-10">
|
||||
<h6 class="text-primary mb-4">{% trans %}XRP’s Origin{% endtrans %}</h6>
|
||||
@@ -37,7 +39,7 @@
|
||||
<div class="timeline-block">
|
||||
<div class="timeline-dot"></div>
|
||||
<div class="timeline-content">
|
||||
<h4 class="mb-10">{% trans %}2011 XRP Ledger Development{% endtrans %}</h4>
|
||||
<h4 class="mb-10">{% trans %}2011 XRP Ledger Development{% endtrans %}</h4>
|
||||
<p>{% trans %}The history of the XRP Ledger and its native digital asset XRP dates back to early 2011 when three developers—David Schwartz, Jed McCaleb and Arthur Britto—were fascinated with Bitcoin but observed the waste inherent in mining. They sought to create a better system for sending value (an idea outlined in a May 2011 forum post: “Bitcoin without mining”).{% endtrans %}</p>
|
||||
<p>{% trans %}Their initial observations about the high energy consumption and scalability issues that would plague Bitcoin proved prescient. (In 2019, estimates suggest Bitcoin mining used more energy than the entire country of Portugal!) Moreover, their initial read indicated that significant problems could arise if any miner obtained (or miners colluded to obtain) greater than 50% of the mining power—that risk persists with Bitcoin (and Ethereum) today as mining power has consolidated in China.{% endtrans %}</p>
|
||||
</div>
|
||||
@@ -61,7 +63,7 @@
|
||||
<div class="timeline-content">
|
||||
<h4 class="mb-10">{% trans %}2013 OpenCoin Rebranded to Ripple Labs{% endtrans %}</h4>
|
||||
<p>{% trans %}At the outset of the company, OpenCoin set out to revolutionize the global financial system. Despite the revolutionary ideals of many of Bitcoin’s early believers, Larsen never thought blockchain technology should be used to overthrow the existing financial system. He believed that history’s most transformative innovations have always relied on the great ideas that came before them—not disrupting them.{% endtrans %}</p>
|
||||
<p>{% trans %}In early conversations with potential customers, the team was asked about the differences between the Ripple project and OpenCoin company. Because the community widely adopted calling the digital asset by its currency code “XRP,” company leaders decided to rebrand the company to Ripple Labs, which has been shortened over time to “Ripple.”{% endtrans %}</p>
|
||||
<p>{% trans %}In early conversations with potential customers, the team was asked about the differences between the Ripple project and OpenCoin company.{% endtrans %}</p>
|
||||
<p>{% trans %}Today, the company uses XRP and the XRP Ledger for liquidity management in its cross-border payments business. Ripple also remains a stakeholder and contributor to the broader XRP community.{% endtrans %}</p>
|
||||
</div>
|
||||
</div>
|
||||
@@ -81,6 +83,7 @@
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
|
||||
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
<div class="container mt-20">
|
||||
<section class="row">
|
||||
<div class="col-md-4 d-flex flex-column-reverse justify-content-end">
|
||||
<h1 class="mb-10">{% trans %}Faster, Cheaper, Green Money{% endtrans %}</h1>
|
||||
<h1 class="mb-10">{% trans %}Faster, Cheaper, Green Money{% endtrans %}</h1>
|
||||
<h6 class="text-primary mb-4">{% trans %}Impact{% endtrans %}</h6>
|
||||
</div>
|
||||
<div class="col-md-6 offset-md-1">
|
||||
@@ -32,20 +32,23 @@
|
||||
</section>
|
||||
</div>
|
||||
|
||||
<img class="mb-30" src="./img/marketing/hero-impact.png" id="hero-impact" />
|
||||
<img class="mb-30" src="./img/impact/hero-impact.png" id="hero-impact" />
|
||||
|
||||
<div class="container mb-20">
|
||||
<section class="row mb-50">
|
||||
<h6 class="section-marker">{% trans %}Global Payments{% endtrans %}</h6>
|
||||
<h6 class="section-marker">{% trans %}Creating Economic Opportunity{% endtrans %}</h6>
|
||||
<div class="col-md-4 offset-md-1 mb-10">
|
||||
<img class="mw-100" src="./img/marketing/impact-democratizing-payments@2x.png">
|
||||
<img class="mw-100" src="./img/impact/impact-democratizing-payments@2x.png">
|
||||
</div>
|
||||
<div class="col-md-6 offset-md-1">
|
||||
<h2 class="mb-10">{% trans %}Democratizing Global Payments{% endtrans %}</h2>
|
||||
<h5 class="mb-10 normal">{% trans %}For the 23 million people immigrating worldwide, sending and receiving money across borders is an expensive, unreliable and complex endeavor.{% endtrans %}</h5>
|
||||
<h5 class="mb-10 normal">{% trans %}For the more than <a href="#">272 million migrants</a> worldwide, sending and receiving money across borders is expensive, unreliable and complex.{% endtrans %}</h5>
|
||||
<div class="mb-10 row">
|
||||
<p class="col-md">{% trans %}XRP and the XRP Ledger are changing that. The technology has been adopted by financial institutions around the world. They use it to source liquidity for international transactions, and because of the unprecedented efficiency it offers, they’re able to both bring down costs and improve services.{% endtrans %}</p>
|
||||
<p class="col-md">{% trans %}This means the millions of people worldwide who need to move money across borders can do so more affordably and reliably than ever before.{% endtrans %}</p>
|
||||
<div class="col-md">
|
||||
<p>{% trans %}XRP and the XRP Ledger are changing that.{% endtrans %}</p>
|
||||
<p>{% trans %}The technology has been adopted by financial institutions around the world. They use it to source liquidity for international transactions, and because of the unprecedented efficiency it offers, they’re able to both bring down costs and improve services.{% endtrans %}</p>
|
||||
</div>
|
||||
<p class="col-md">{% trans %}This means hundreds of millions of people worldwide who need to move money safely and securely across borders can do so more affordably and reliably than ever before.{% endtrans %}</p>
|
||||
</div>
|
||||
<a href="#" class="btn btn-clear">{% trans %}Learn More{% endtrans %}</a>
|
||||
</div>
|
||||
@@ -54,7 +57,7 @@
|
||||
<section class="row mb-50">
|
||||
<h6 class="section-marker">{% trans %}Future of Finance{% endtrans %}</h6>
|
||||
<div class="col-md-4 offset-md-1 order-1 order-md-2 mb-10">
|
||||
<img class="mw-100" src="./img/marketing/impact-democratizing-payments@2x.png">
|
||||
<img class="mw-100" src="./img/impact/impact-building-future@2x.png">
|
||||
</div>
|
||||
<div class="col-md-6 offset-md-1 order-2 order-md-1">
|
||||
<h2 class="mb-10">{% trans %}Building for the Future{% endtrans %}</h2>
|
||||
@@ -68,38 +71,38 @@
|
||||
</section>
|
||||
|
||||
<section class="row mb-50">
|
||||
<h6 class="section-marker">{% trans %}Digital Assets{% endtrans %}</h6>
|
||||
<h6 class="section-marker">{% trans %}Are All Digital Assets Alike?{% endtrans %}</h6>
|
||||
<div class="col-md-4 offset-md-1 mb-10">
|
||||
<img class="mw-100" src="./img/marketing/impact-crypto-strengths@2x.png">
|
||||
<img class="mw-100" src="./img/impact/impact-crypto-strengths@2x.png">
|
||||
</div>
|
||||
<div class="col-md-6 offset-md-1">
|
||||
<h2 class="mb-10">{% trans %}Are All Digital Assets Alike?{% endtrans %}</h2>
|
||||
<h5 class="mb-10 normal">{% trans %}Each digital asset has different strengths that make it ideal for various use cases today.{% endtrans %}</h5>
|
||||
<div class="row mb-10">
|
||||
<div class="col-md">
|
||||
<p>{% trans %}Each digital asset and blockchain technology has different strengths that make them ideal for various use cases today.{% endtrans %}</p>
|
||||
<p>{% trans %}Bitcoin is recognized broadly as a store of value and Ether (ETH) for use in smart contracts.{% endtrans %}</p>
|
||||
<p class="col-md">
|
||||
<p>{% trans %}XRP is optimal for transacting—it’s fast, cheap, scalable and energy-efficient. It was designed this way; to be ideal for use in global payments.{% endtrans %}</p>
|
||||
<p>{% trans %}XRP is optimal for transacting—it’s fast, cheap, scalable and energy-efficient. It was designed for use in global payments.{% endtrans %}</p>
|
||||
</div>
|
||||
<div class="col-md">
|
||||
<p>{% trans %}And, the same characteristics that make it ideal for payments mean it’s also better for our environment. XRP is green by nature.{% endtrans %}</p>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="row mb-20">
|
||||
<h6 class="section-marker">{% trans %}Sustainability{% endtrans %}</h6>
|
||||
<h6 class="section-marker">{% trans %}What Makes XRP and the XRP Ledger Green?{% endtrans %}</h6>
|
||||
<div class="col-md-4 mb-10">
|
||||
<img class="mw-100 mt-20" src="./img/marketing/green-graphic@2x.png">
|
||||
<img class="mw-100 mt-20" src="./img/green/green-graphic@2x.png">
|
||||
</div>
|
||||
<div class="col-md-8">
|
||||
<h3 class="h2 mb-9">{% trans %}What Makes XRP and XRPL Green?{% endtrans %}</h3>
|
||||
<h5 class="mb-10 normal">{% trans %}Most currency today—whether digital or physical—is not environmentally friendly. The potential for long-term impact on our planet could hold startling consequences.{% endtrans %}</h5>
|
||||
<div class="row mb-10">
|
||||
<div class="col-md">
|
||||
<p>{% trans %}The digital asset XRP was designed with sustainability in mind. The XRP Ledger processes transactions through a unique “consensus” mechanism that consumes negligible energy and all XRP currency is already in circulation.{% endtrans %}</p>
|
||||
<p>{% trans %}The digital asset XRP was designed with sustainability in mind. The XRP Ledger processes transactions through a unique “consensus” mechanism that consumes negligible energy and all XRP currency is already in circulation.{% endtrans %}</p>
|
||||
<p>{% trans %}Other digital assets, like Bitcoin, rely on a different mechanism to both validate transactions and create new coins. This “proof-of-work” algorithm requires “mining.” Mining is an incredibly energy-intensive process for validating transactions that consumes more energy in a year than entire countries.{% endtrans %}</p>
|
||||
</div>
|
||||
<div class="col-md">
|
||||
<p>{% trans %}Cash also leaves a substantial carbon footprint, and the environmental impact goes beyond energy consumption—deforestation, water pollution and more factor into the equation.{% endtrans %}</p>
|
||||
<p>{% trans %}Cash also leaves a substantial carbon footprint, and the environmental impact goes beyond energy consumption—eutrophication (due to waste), photochemical ozone creation, greenhouse gas emissions and more factor into the equation.{% endtrans %}</p>
|
||||
<p>{% trans %}Adopting XRP more broadly will help limit this waste and ensure a sustainable future for our planet and global economy.{% endtrans %}</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -20,50 +20,50 @@
|
||||
<div class="container marketing-wrapper">
|
||||
<section class="row mb-50">
|
||||
<div class="col-md-6 mb-10">
|
||||
<h6 class="text-primary mb-4">Using XRP</h6>
|
||||
<h1 class="mb-18">Your Questions About XRP, Answered.</h1>
|
||||
<h6 class="text-primary mb-4">{% trans %}XRP Overview{% endtrans %}</h6>
|
||||
<h1 class="mb-18">{% trans %}Your Questions About XRP, Answered.{% endtrans %}</h1>
|
||||
</div>
|
||||
<div class="w-100"></div>
|
||||
<div class="col-md-8">
|
||||
<h2 class="mb-8">What is XRP?</h2>
|
||||
<h2 class="mb-8">{% trans %}What is XRP?{% endtrans %}</h2>
|
||||
<div class="row">
|
||||
<p class="col">XRP is a digital asset that’s native to the XRP Ledger, an open-source, permissionless and decentralized blockchain technology.</p>
|
||||
<p class="col">Created in 2012 specifically for payments, XRP can settle transactions on the ledger in 3-5 seconds. It was built to be a better Bitcoin—faster, cheaper and greener than any other digital asset.</p>
|
||||
<p class="col">{% trans %}XRP is a digital asset that’s native to the XRP Ledger, an open-source, permissionless and decentralized blockchain technology.{% endtrans %}</p>
|
||||
<p class="col">{% trans %}Created in 2012 specifically for payments, XRP can settle transactions on the ledger in 3-5 seconds. It was built to be a better Bitcoin—faster, cheaper and greener than any other digital asset. {% endtrans %}</p>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="row mb-50">
|
||||
<h6 class="section-marker">Benefits</h6>
|
||||
<h6 class="section-marker">{% trans %}Benefits{% endtrans %}</h6>
|
||||
<div class="col-sm-12 col-lg-10 mt-14">
|
||||
<table>
|
||||
<table id="table-overview">
|
||||
<thead>
|
||||
<tr>
|
||||
<td class="bold"></td>
|
||||
<td class="bold">XRP</td>
|
||||
<td class="bold">Bitcoin</td>
|
||||
<td class="bold h4">{% trans %}Benefits{% endtrans %}</td>
|
||||
<td class="bold text-large"><img class="h36 mr-2" src="./img/icons/bw-xrp.png">{% trans %}XRP{% endtrans %}</td>
|
||||
<td class="bold text-large"><img class="h36 mr-2" src="./img/icons/bw-bitcoin.png">{% trans %}Bitcoin{% endtrans %}</td>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="bold"><div class="w48 mr-3 text-center d-inline-block"><img class="h36" src="./img/icons/fast.png"></div>Fast</td>
|
||||
<td class="">3-5 seconds to settle</td>
|
||||
<td class="">500 seconds to settle</td>
|
||||
<td class="bold"><div class="w48 mr-3 text-center d-inline-block no-wrap"><img class="h32" src="./img/icons/fast.png"></div>{% trans %}Fast{% endtrans %}</td>
|
||||
<td class="">{% trans %}3-5 seconds to settle{% endtrans %}</td>
|
||||
<td class="">{% trans %}500 seconds to settle{% endtrans %}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="bold"><div class="w48 mr-3 text-center d-inline-block"><img class="h36" src="./img/icons/low-cost.png"></div>Low Cost</td>
|
||||
<td class="">$0.0002/transaction</td>
|
||||
<td class="">$0.50/transaction</td>
|
||||
<td class="bold"><div class="w48 mr-3 text-center d-inline-block no-wrap"><img class="w32" src="./img/icons/low-cost.png"></div>{% trans %}Low Cost{% endtrans %}</td>
|
||||
<td class="">{% trans %}$0.00002/transaction{% endtrans %}</td>
|
||||
<td class="">{% trans %}$0.50/transaction{% endtrans %}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="bold"><div class="w48 mr-3 text-center d-inline-block"><img class="h36" src="./img/icons/scalable.png"></div>Scalable</td>
|
||||
<td class="">1500 transaction per second</td>
|
||||
<td class="">3 transactions per second</td>
|
||||
<td class="bold"><div class="w48 mr-3 text-center d-inline-block no-wrap"><img class="w44" src="./img/icons/scalable.png"></div>{% trans %}Scalable{% endtrans %}</td>
|
||||
<td class="">{% trans %}1500 transaction per second{% endtrans %}</td>
|
||||
<td class="">{% trans %}3 transactions per second{% endtrans %}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="bold"><div class="w48 mr-3 text-center d-inline-block"><img class="w40" src="./img/icons/sustainable.png"></div>Sustainable</td>
|
||||
<td class="">Environmentally sustainable (negligible energy consumption)</td>
|
||||
<td class="">0.3% of global energy consumption</td>
|
||||
<td class="bold"><div class="w48 mr-3 text-center d-inline-block no-wrap"><img class="w48" src="./img/icons/sustainable.png"></div>{% trans %}Sustainable{% endtrans %}</td>
|
||||
<td class="">{% trans %}Environmentally sustainable (negligible energy consumption){% endtrans %}</td>
|
||||
<td class="">{% trans %}0.3% of global energy consumption{% endtrans %}</td>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
@@ -71,73 +71,73 @@
|
||||
|
||||
|
||||
<section class="row mb-50">
|
||||
<h6 class="section-marker">Digital Cryptocurrency</h6>
|
||||
<div class="col-lg-8 order-1 order-md-2 mb-10">
|
||||
<img class="mw-100" src="./img/green/green-graphic.png">
|
||||
<h6 class="section-marker">{% trans %}Finite Supply of XRP {% endtrans %}</h6>
|
||||
<div class="col-lg-6 offset-lg-1 order-1 order-lg-2 mb-10">
|
||||
<img class="mw-100" src="./img/graphics/overview-supply.png">
|
||||
</div>
|
||||
<div class="col-lg-4 order-2 order-md-1">
|
||||
<p>XRP can be sent directly without needing a central intermediary, making it a convenient instrument in bridging two different currencies quickly and efficiently. It is freely exchanged on the open market and used in the real world for enabling cross-border payments and microtransactions.</p>
|
||||
<p>Unlike Bitcoin, there is a finite amount of XRP. All XRP is already in existence today—100 billion in total.</p>
|
||||
<a href="#" class="btn btn-clear">History of XRP</a>
|
||||
<div class="col-lg-4 order-2 order-lg-1">
|
||||
<p>{% trans %}XRP can be sent directly without needing a central intermediary, making it a convenient instrument in bridging two different currencies quickly and efficiently. It is freely exchanged on the open market and used in the real world for enabling cross-border payments and microtransactions.{% endtrans %}</p>
|
||||
<p>{% trans %}Unlike Bitcoin, there is a finite amount of XRP. All XRP is already in existence today—100 billion in total.{% endtrans %}</p>
|
||||
<a href="#" class="btn btn-clear">{% trans %}History of XRP{% endtrans %}</a>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="row mb-50">
|
||||
<h6 class="section-marker">XRP Ledger</h6>
|
||||
<h6 class="section-marker">{% trans %}XRP Validators{% endtrans %}</h6>
|
||||
<div class="col-md-4">
|
||||
<h2>How Does the XRP Ledger Work?</h2>
|
||||
<h2>{% trans %}How Does the XRP Ledger Work?{% endtrans %}</h2>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<p>The XRP Ledger stands on open-source technologies on which anyone can build. The XRP Ledger is maintained by a global “XRP Community”—a diverse set of participants composed of software engineers, server operators and validators.</p>
|
||||
<p>The XRP Ledger uses a consensus protocol, in which validators come to an agreement on the order of XRP transactions every 3-5 seconds. This agreement serves as the final and irreversible settlement.</p>
|
||||
<p>{% trans %}The XRP Ledger stands on open-source technologies on which anyone can build. The XRP Ledger is maintained by a global “XRP Community”—a diverse set of participants composed of software engineers, server operators and validators.{% endtrans %}</p>
|
||||
<p>{% trans %}The XRP Ledger uses a consensus protocol, in which validators come to an agreement on the order of XRP transactions every 3-5 seconds. This agreement serves as the final and irreversible settlement.{% endtrans %}</p>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<p>Transactions are executed in a deterministic order to prevent double spending and malicious activity. Unlike other blockchains, transaction fees are destroyed as part of transaction execution. The XRP Ledger adjusts fees in near real time to respond to network conditions, with the twin goals of maximizing transaction throughput while keeping transaction fees as low as possible.</p>
|
||||
<p>All servers in the network process each transaction according to the same rules, and any transaction that follows the protocol is confirmed as soon as validators reach a quorum.</p>
|
||||
<p>{% trans %}Transactions are executed in a deterministic order to prevent double spending and malicious activity. Unlike other blockchains, transaction fees are destroyed as part of transaction execution. The XRP Ledger adjusts fees in near real time to respond to network conditions, with the twin goals of maximizing transaction throughput while keeping transaction fees as low as possible.{% endtrans %}</p>
|
||||
<p>{% trans %}All servers in the network process each transaction according to the same rules, and any transaction that follows the protocol is confirmed as soon as validators reach a quorum.{% endtrans %}</p>
|
||||
</div>
|
||||
<div class="w-100 mb-20"></div>
|
||||
<div class="col-lg-6">
|
||||
<img class="mw-100" src="./img/graphics/validator.png">
|
||||
</div>
|
||||
<div class="col-lg-5 offset-lg-1">
|
||||
<h4 class="mb-10">Anyone can operate a validator; currently, over 150 validators are active on the ledger, operated by universities, exchanges, businesses and individuals.</h4>
|
||||
<a href="#" class="btn btn-clear">Get Technical</a>
|
||||
<h4 class="mb-10">{% trans %}Anyone can operate a validator; currently, over 150 validators are active on the ledger, operated by universities, exchanges, businesses and individuals.{% endtrans %}</h4>
|
||||
<a href="#" class="btn btn-clear">{% trans %}Get Technical{% endtrans %}</a>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="row mb-50">
|
||||
<h6 class="section-marker">Trading</h6>
|
||||
<h6 class="section-marker">{% trans %}Internet of Value{% endtrans %}</h6>
|
||||
<div class="col-lg-6">
|
||||
<h2 class="mb-10">Why Is XRP Useful?</h2>
|
||||
<p class="mb-10 normal h4">Market participants use XRP as a high-speed, cost-efficient and reliable trading collateral. This means seizing arbitrage opportunities, servicing margin calls and managing general trade inventory in real time.</p>
|
||||
<h2 class="mb-10">{% trans %}Why Is XRP Useful?{% endtrans %}</h2>
|
||||
<h5 class="mb-10 normal h4">{% trans %}XRP is fast, low-cost, sustainable and scalable. It is the key to fueling growth and realizing the true potential of our global economy—the Internet of Value.{% endtrans %}</h5>
|
||||
</div>
|
||||
<div class="w-100 mt-20"></div>
|
||||
<div class="col-md-4">
|
||||
<h4>Businesses</h4>
|
||||
<p class="my-10">Many businesses are building on the XRP Ledger, pursuing powerful use cases in micropayments, gaming, web monetization and more. Additionally, Ripple, the technology company, is focused on building a network and infrastructure that leverages XRP to power faster, more affordable cross-border payments around the world.</p>
|
||||
<a href="#" class="text-white bold arrow-link">More About Businesses</a>
|
||||
<h4>{% trans %}Businesses{% endtrans %}</h4>
|
||||
<p class="my-10">{% trans %}Many businesses are building on the XRP Ledger, pursuing powerful use cases in micropayments, gaming, web monetization and more. Additionally, Ripple, the technology company, is focused on building a network and infrastructure that leverages XRP to power faster, more affordable cross-border payments around the world.{% endtrans %}</p>
|
||||
<a href="#" class="text-white bold arrow-link">{% trans %}More About Businesses{% endtrans %}</a>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<h4>Individuals</h4>
|
||||
<p class="my-10">Individual consumers can use XRP to move different currencies around the world. For example, through the PayID solution, anyone can use XRP—or any currency, be it fiat or digital assets—to easily make purchases across any payments network.</p>
|
||||
<a href="#" class="text-white bold arrow-link">More About Uses</a>
|
||||
<h4>{% trans %}Individuals{% endtrans %}</h4>
|
||||
<p class="my-10">{% trans %}Individual consumers can use XRP to move different currencies around the world. For example, through the PayID solution, anyone can use XRP—or any currency, be it fiat or digital assets—to easily make purchases across any payments network.{% endtrans %}</p>
|
||||
<a href="#" class="text-white bold arrow-link">{% trans %}More About Uses{% endtrans %}</a>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<h4>Developers</h4>
|
||||
<p class="my-10">By building on the XRP Ledger, developers can easily integrate payments into their products—seamlessly putting money at the center of their applications. Projects like the Xpring developer platform are making it easier for developers to leverage XRP.</p>
|
||||
<a href="#" class="text-white bold arrow-link">More About Developers</a>
|
||||
<h4>{% trans %}Developers{% endtrans %}</h4>
|
||||
<p class="my-10">{% trans %}By building on the XRP Ledger, developers can easily integrate payments into their products—seamlessly putting money at the center of their applications. Projects like the <a href="#">Xpring developer platform</a> are making it easier for developers to leverage XRP. {% endtrans %}</p>
|
||||
<a href="#" class="text-white bold arrow-link">{% trans %}More About Developers{% endtrans %}</a>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="mb-50">
|
||||
<h6 class="section-marker">Internet of Value</h6>
|
||||
<h6 class="section-marker">{% trans %}Internet of Value{% endtrans %}</h6>
|
||||
<div class="row mb-40">
|
||||
<div class="col-md-4 offset-md-2 order-1 order-md-2 mb-10">
|
||||
<img class="mw-100" src="./img/overview/fast.png">
|
||||
</div>
|
||||
<div class="col-md-4 offset-md-1 order-2 order-md-1">
|
||||
<h2 class="mb-10">Fast</h2>
|
||||
<p>XRP transactions settle faster than on any other blockchain—in 3-5 seconds.</p>
|
||||
<h2 class="mb-10">{% trans %}Fast{% endtrans %}</h2>
|
||||
<p>{% trans %}The XRP Ledger settles transactions faster than any other blockchain—in 3-5 seconds.{% endtrans %}</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mb-30">
|
||||
@@ -145,8 +145,8 @@
|
||||
<img class="mw-100" src="./img/overview/low-cost.png">
|
||||
</div>
|
||||
<div class="col-md-4 offset-md-2">
|
||||
<h2 class="mb-10">Low Cost</h2>
|
||||
<p>XRP transactions cost a fraction of a penny ($0.0002) – much less than other cryptocurrencies and average fiat payments.</p>
|
||||
<h2 class="mb-10">{% trans %}Low Cost{% endtrans %}</h2>
|
||||
<p>{% trans %}XRP transactions cost a fraction of a penny ($0.0002)—much less than other cryptocurrencies and average fiat payments.{% endtrans %}</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mb-30">
|
||||
@@ -154,8 +154,8 @@
|
||||
<img class="mw-100" src="./img/overview/scalable.png">
|
||||
</div>
|
||||
<div class="col-md-4 offset-md-1 order-2 order-md-1">
|
||||
<h2 class="mb-10">Scalable</h2>
|
||||
<p>The XRP Ledger can handle up to 1,500 transactions per second.</p>
|
||||
<h2 class="mb-10">{% trans %}Scalable{% endtrans %}</h2>
|
||||
<p>{% trans %}The XRP Ledger can handle up to 1,500 transactions per second.{% endtrans %}</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mb-30">
|
||||
@@ -163,8 +163,8 @@
|
||||
<img class="mw-100" src="./img/overview/sustainable.png">
|
||||
</div>
|
||||
<div class="col-md-4 offset-md-2">
|
||||
<h2 class="mb-10">Sustainable</h2>
|
||||
<p>XRP transactions settle without the enormous and unsustainable energy costs associated with proof-of-work (or mining).</p>
|
||||
<h2 class="mb-10">{% trans %}Sustainable{% endtrans %}</h2>
|
||||
<p>{% trans %}XRP transactions settle without the enormous and unsustainable energy costs associated with proof-of-work (or mining).{% endtrans %}</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mb-20">
|
||||
@@ -172,55 +172,68 @@
|
||||
<img class="mw-100" src="./img/overview/real.png">
|
||||
</div>
|
||||
<div class="col-md-4 offset-md-1 order-2 order-md-1">
|
||||
<h2 class="mb-10">Real</h2>
|
||||
<p>XRP is one of the only digital assets with a proven, real-world use case: cross-border payments. </p>
|
||||
<h2 class="mb-10">{% trans %}Real{% endtrans %}</h2>
|
||||
<p>{% trans %}XRP is one of the only digital assets with a proven, real-world use case: cross-border payments.{% endtrans %}</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="text-center">
|
||||
<a href="#" class="btn btn-clear">Explore Uses</a>
|
||||
<a href="#" class="btn btn-clear">{% trans %}Explore Uses{% endtrans %}</a>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="mb-50">
|
||||
<h6 class="section-marker">Trading</h6>
|
||||
<h6 class="section-marker">{% trans %}Trading{% endtrans %}</h6>
|
||||
<div class="row">
|
||||
<div class="col-md-4 offset-md-2 order-1 order-md-2 mb-10">
|
||||
<img class="mw-100" src="./img/overview/real.png">
|
||||
<div class="col-md-6 order-1 order-md-2 mb-10">
|
||||
<div class="d-flex flex-wrap w-100">
|
||||
<a class="square square-50 d-flex card-b" href="#">
|
||||
<img class="mw-100" src="./img/exchanges/coinbase.png">
|
||||
</a>
|
||||
<a class="square square-50 d-flex card-b" href="#">
|
||||
<img class="mw-100" src="./img/exchanges/binance.png">
|
||||
</a>
|
||||
<a class="square square-50 d-flex card-b" href="#">
|
||||
<img class="mw-100" src="./img/exchanges/bitstamp.png">
|
||||
</a>
|
||||
<a class="square square-50 d-flex card-b" href="#">
|
||||
<img class="mw-100" src="./img/exchanges/kraken.png">
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-5 order-2 order-md-1">
|
||||
<h2 class="mb-10">How Is XRP Used in Trading?</h2>
|
||||
<p>XRP is traded on more than 140 markets and exchanges worldwide.</p>
|
||||
<p>XRP’s low transaction fees, reliability and high speed enable traders to use the digital asset as high-speed, cost-efficient and reliable collateral across trading venues—seizing arbitrage opportunities, servicing margin calls and managing general trading inventory in real time.</p>
|
||||
<p>Because of the properties inherent to XRP and the ecosystem around it, traders worldwide are able to shift collateral, bridge currencies and switch from one crypto into another nearly instantly, across any exchange on the planet.</p>
|
||||
<a href="#" class="mt-10 btn btn-clear">Find Out More</a>
|
||||
<h2 class="mb-10">{% trans %}How Is XRP Used in Trading?{% endtrans %}</h2>
|
||||
<p>{% trans %}XRP is traded on more than 140 markets and <a href="/exchanges">exchanges</a> worldwide.{% endtrans %}</p>
|
||||
<p>{% trans %}XRP’s low transaction fees, reliability and high speed enable traders to use the digital asset as high-speed, cost-efficient and reliable collateral across trading venues—seizing arbitrage opportunities, servicing margin calls and managing general trading inventory in real time.{% endtrans %}</p>
|
||||
<p>{% trans %}Because of the properties inherent to XRP and the ecosystem around it, traders worldwide are able to shift collateral, bridge currencies and switch from one crypto into another nearly instantly, across any exchange on the planet.{% endtrans %}</p>
|
||||
<a href="#" class="mt-10 btn btn-clear">{% trans %}Find Out More{% endtrans %}</a>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="mb-50">
|
||||
<h6 class="section-marker">Ripple vs. XRP</h6>
|
||||
<h6 class="section-marker">{% trans %}Ripple vs. XRP{% endtrans %}</h6>
|
||||
<div class="row">
|
||||
<div class="col-md-4 offset-md-1 mb-10">
|
||||
<img class="mw-100 mt-10" src="./img/overview/xrp-text-logo.png">
|
||||
</div>
|
||||
<div class="col-md-5 offset-md-1">
|
||||
<h2 class="mb-10">What Is the Relationship Between Ripple and XRP?</h2>
|
||||
<p>Ripple is a technology company that makes it easier to build a high-performance, global payments business through its platform, RippleNet. XRP is a digital asset independent of this, and is used in Ripple’s On-Demand Liquidity service to facilitate efficient and cost-effective cross-border transactions. </p>
|
||||
<a href="#" class="mt-10 btn btn-clear">Visit Ripple's Website</a>
|
||||
<h2 class="mb-10">{% trans %}What Is the Relationship Between Ripple and XRP?{% endtrans %}</h2>
|
||||
<p>{% trans %}Ripple is a technology company that makes it easier to build a high-performance, global payments business through its platform, RippleNet. XRP is a digital asset independent of this, and is used in Ripple’s On-Demand Liquidity service to facilitate efficient and cost-effective cross-border transactions.{% endtrans %}</p>
|
||||
<a href="#" class="mt-10 btn btn-clear">{% trans %}Visit Ripple's Website{% endtrans %}</a>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="mb-50">
|
||||
<h6 class="section-marker">XRP Community</h6>
|
||||
<h6 class="section-marker">{% trans %}XRP Community{% endtrans %}</h6>
|
||||
<div class="row">
|
||||
<div class="col-md-6 offset-md-1 order-1 order-md-2 mb-10">
|
||||
<img class="mw-100" src="./img/overview/xrp-community.png">
|
||||
</div>
|
||||
<div class="col-md-5 order-2 order-md-1">
|
||||
<h2 class="mb-10">XRPL.org: For the Community, by the Community</h2>
|
||||
<p>XRPL.org is a community-driven resource for all things XRP and XRP Ledger (XRPL). If you’d like to suggest additional information around XRP, you can suggest changes here.</p>
|
||||
<a href="#" class="mt-10 btn btn-clear">Suggest Changes</a>
|
||||
<h2 class="mb-10">{% trans %}XRPL.org: For the Community, by the Community{% endtrans %}</h2>
|
||||
<p>{% trans %}XRPL.org is a community-driven resource for all things XRP and XRP Ledger (XRPL). If you’d like to suggest additional information around XRP, you can suggest changes here.{% endtrans %}</p>
|
||||
<a href="#" class="mt-10 btn btn-clear">{% trans %}Suggest Changes{% endtrans %}</a>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
@@ -16,18 +16,23 @@
|
||||
{% block breadcrumbs %}{% endblock %}
|
||||
|
||||
{% block main %}
|
||||
<div class="container my-40 marketing-wrapper">
|
||||
<section class="row mb-50">
|
||||
<div class="col-md-4 d-flex flex-column-reverse justify-content-end">
|
||||
<h1 class="mb-10">{% trans %}The Best Way to Move Money Around the World{% endtrans %}</h1>
|
||||
<h6 class="text-primary mb-4">{% trans %}Using XRP{% endtrans %}</h6>
|
||||
</div>
|
||||
<div class="col-md-6 offset-md-1">
|
||||
<h2 class="mt-12 mb-10">{% trans %}XRP and the XRP Ledger are used to power innovative technology across the payments space.{% endtrans %}</h2>
|
||||
<p>{% trans %}Lorem ipsum dolor sit amet, consectetur adipiscing elit. In egestas maximus ligula, id tincidunt odio condimentum ac. Pellentesque vulputate felis lacus, id imperdiet elit tristique id. Ut sapien lorem, finibus id auctor eu, volutpat finibus nisi. {% endtrans %}</p>
|
||||
</div>
|
||||
</section>
|
||||
<div class="my-40 marketing-wrapper">
|
||||
<div class="container">
|
||||
<section class="row mb-20">
|
||||
<div class="col-md-4 d-flex flex-column-reverse justify-content-end">
|
||||
<h1 class="mb-10">{% trans %}The Best Way to Move Money Around the World{% endtrans %}</h1>
|
||||
<h6 class="text-primary mb-4">{% trans %}Using XRP{% endtrans %}</h6>
|
||||
</div>
|
||||
<div class="col-md-6 offset-md-1">
|
||||
<h2 class="mt-12 mb-10">{% trans %}XRP and the XRP Ledger are used to power innovative technology across the payments space.{% endtrans %}</h2>
|
||||
<p>{% trans %}From cross-border payments to web monetization, businesses and developers around the world are leveraging the XRP Ledger and its native digital asset, XRP—a faster, cheaper and greener currency.{% endtrans %}</p>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
|
||||
<img class="mb-40" src="./img/backgrounds/bg-uses-top.png" id="page-uses-top" />
|
||||
|
||||
<div class="container mb-20">
|
||||
<section class="row mb-50">
|
||||
<h6 class="section-marker">{% trans %}Cross-Border payments{% endtrans %}</h6>
|
||||
<div class="col-md-4 offset-md-1 order-1 order-md-2 mb-10">
|
||||
|
||||