mirror of
https://github.com/XRPLF/xrpl-dev-portal.git
synced 2025-11-20 19:55:54 +00:00
Merge pull request #510 from mDuo13/external_link_marks
External link marks
This commit is contained in:
@@ -4,7 +4,7 @@ Payment Channels are an advanced feature for sending "asynchronous" XRP payments
|
||||
|
||||
The XRP for a payment channel is set aside for a given time period. The sender creates _Claims_ against the channel, which the recipient verifies without sending an XRP Ledger transaction or waiting for a new ledger version to be approved by [consensus](consensus.html). (This is an _asychronous_ process because it happens separate from the usual pattern of getting transactions approved by consensus.) At any time, the recipient can _redeem_ a Claim to receive an amount of XRP authorized by that Claim. Settling a Claim like this uses a standard XRP Ledger transaction, as part of the usual consensus process. This single transaction can encompass any number of transactions guaranteed by smaller Claims.
|
||||
|
||||
Because Claims can be verified individually but settled in bulk later, payment channels make it possible to conduct transactions at a rate only limited by the participants' ability to create and verify the digital signatures of those Claims. This limit is primarily based the speed of the participants' hardware and the complexity of the signature algorithms. For maximum speed, use Ed25519 signatures, which are faster than the XRP Ledger's default secp256k1 ECSDA signatures. Research has <a href="https://ed25519.cr.yp.to/ed25519-20110926.pdf">demonstrated the ability to create over Ed25519 100,000 signatures per second and to verify over 70,000 per second <i class="fa fa-external-link" aria-hidden="true"></i></a> on commodity hardware in 2011.
|
||||
Because Claims can be verified individually but settled in bulk later, payment channels make it possible to conduct transactions at a rate only limited by the participants' ability to create and verify the digital signatures of those Claims. This limit is primarily based the speed of the participants' hardware and the complexity of the signature algorithms. For maximum speed, use Ed25519 signatures, which are faster than the XRP Ledger's default secp256k1 ECSDA signatures. Research has [demonstrated the ability to create over Ed25519 100,000 signatures per second and to verify over 70,000 per second](https://ed25519.cr.yp.to/ed25519-20110926.pdf) on commodity hardware in 2011.
|
||||
|
||||
|
||||
## Why Use Payment Channels
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
|
||||
Validators determine if transactions meet protocol requirements, and are therefore “valid.” The service validators uniquely provide is grouping transactions into ordered units, agreeing on one such ordering specifically to prevent double spending.
|
||||
|
||||
See [Consensus](consensus.html) and the <a href="https://ripple.com/insights/ripple-labs-tech-talk-consensus-within-the-ripple-protocol/" target="_blank">Ripple Labs Tech Talk: Understanding Consensus <i class="fa fa-external-link" aria-hidden="true"></i></a><!--#{ fix md highlighting_ #}--> for more information about the consensus process.
|
||||
See [Consensus](consensus.html) and the [Ripple Labs Tech Talk: Understanding Consensus](https://ripple.com/insights/ripple-labs-tech-talk-consensus-within-the-ripple-protocol/) for more information about the consensus process.
|
||||
|
||||
|
||||
#### How much does it cost to run a validator?
|
||||
@@ -82,7 +82,7 @@ Ripple controls who has access to modify official versions of the `rippled` serv
|
||||
|
||||
#### Does Ripple offer a secure method to download their software?
|
||||
|
||||
`rippled` source code is available at <a href="https://github.com/ripple/rippled" target="_blank">https://github.com/ripple/rippled <i class="fa fa-external-link" aria-hidden="true"></i></a><!--#{ fix md highlighting_ #}-->, where the tip of the master, release and develop branches always contains a version-setting commit signed by a `rippled` developer. The XRP Ledger also offers prebuilt RPM packages for CentOS, RedHat Enterprise Linux, Fedora and Ubuntu. Those packages are digitally signed by Ripple so that they are tamper-evident and their authenticity can be verified. Lastly, release bulletins are made available over a secure website, and include the commit ID of the repository, as well as the md5sum of the RPM packages that are published.
|
||||
`rippled` source code is available at <https://github.com/ripple/rippled>, where the tip of the `master`, `release` and `develop` branches always contains a version-setting commit signed by a `rippled` developer. The XRP Ledger also offers prebuilt RPM packages for CentOS, RedHat Enterprise Linux, Fedora and Ubuntu. Those packages are digitally signed by Ripple so that they are tamper-evident and their authenticity can be verified. Lastly, release bulletins are made available over a secure website, and include the commit ID of the repository, as well as the md5sum of the RPM packages that are published.
|
||||
|
||||
|
||||
#### Does Ripple distinguish between the codebase for validation and the one for user software?
|
||||
@@ -92,8 +92,8 @@ Yes. Client software for the XRP Ledger, including ripple-lib, has a different c
|
||||
|
||||
## See Also
|
||||
|
||||
- <a href="https://github.com/ripple/rippled" target="_blank">`rippled` codebase <i class="fa fa-external-link" aria-hidden="true"></i></a><!--#{ fix md highlighting_ #}-->
|
||||
- [`rippled` codebase](https://github.com/ripple/rippled)
|
||||
- User software codebase:
|
||||
- <a href="https://github.com/ripple/ripple-lib" target="_blank">ripple-lib <i class="fa fa-external-link" aria-hidden="true"></i></a><!--#{ fix md highlighting_ #}-->
|
||||
- <a href="https://github.com/ripple/ripplecharts-frontend" target="_blank">ripplecharts-frontend <i class="fa fa-external-link" aria-hidden="true"></i></a><!--#{ fix md highlighting_ #}-->
|
||||
- <a href="https://github.com/ripple/" target="_blank">Ripple GitHub Organization <i class="fa fa-external-link" aria-hidden="true"></i></a><!--#{ fix md highlighting_ #}-->
|
||||
- [ripple-lib](https://github.com/ripple/ripple-lib)
|
||||
- [ripplecharts-frontend](https://github.com/ripple/ripplecharts-frontend)
|
||||
- [Ripple GitHub Organization](https://github.com/ripple/)
|
||||
|
||||
@@ -47,7 +47,7 @@ Sending a transaction to the XRP Ledger involves several steps:
|
||||
1. Create an [unsigned transaction in JSON format](#example-unsigned-transaction).
|
||||
2. Use one or more signatures to [authorize the transaction](#authorizing-transactions).
|
||||
3. Submit a transaction to a `rippled` server. If the transaction is properly formed, the server provisionally applies the transaction to its current version of the ledger and relays the transaction to other members of the peer-to-peer network.
|
||||
4. The [consensus process](https://ripple.com/build/ripple-ledger-consensus-process/) determines which provisional transactions get included in the next validated ledger.
|
||||
4. The [consensus process](consensus.html) determines which provisional transactions get included in the next validated ledger.
|
||||
5. The `rippled` servers apply those transactions to the previous ledger in a canonical order and share their results.
|
||||
6. If enough [trusted validators](rippled-server-modes.html#reasons-to-run-a-validator) created the exact same ledger, that ledger is declared _validated_ and the [results of the transactions](transaction-results.html) in that ledger are immutable.
|
||||
|
||||
|
||||
@@ -12,14 +12,14 @@ Get the latest XRP Ledger news and release information.
|
||||
|
||||
Amendments provide a way to introduce breaking changes to the decentralized XRP Ledger network without causing disruptions. Get the comprehensive list of [all known amendments](known-amendments.html) and their statuses on the production XRP Ledger.
|
||||
|
||||
* **<a href="https://ripple.com/category/dev-blog/" target="_blank">Ripple Dev Blog </a><i class="fa fa-external-link"></i><!--{#_ open link in new tab #}-->**
|
||||
* **[Ripple Dev Blog](https://ripple.com/category/dev-blog/)**
|
||||
|
||||
Visit the Dev Blog for the latest news and stories about the XRP Ledger and `rippled`.
|
||||
|
||||
* **<a href="https://github.com/ripple" target="_blank">Ripple GitHub Organization </a><i class="fa fa-external-link"></i><!--{#_ open link in new tab #}-->**
|
||||
* **[Ripple GitHub Organization](https://github.com/ripple)**
|
||||
|
||||
Visit the Ripple GitHub Organization to access open-source projects, including `rippled`, `ripple-lib`, and `ripple-libpp`.
|
||||
|
||||
* **<a href="https://interledger.org/" target="_blank">Interledger </a><i class="fa fa-external-link"></i><!--{#_ open link in new tab #}-->**
|
||||
* **[Interledger](https://interledger.org/)**
|
||||
|
||||
Learn about Interledger, an open protocol suite for sending payments across different ledgers. The open architecture and minimal protocol enable interoperability for any value transfer system.
|
||||
|
||||
@@ -6,57 +6,50 @@ Want to contribute code or a bug report to help improve `ripple-lib`, the offici
|
||||
{% set n = cycler(* range(1,99)) %}
|
||||
|
||||
<span class="use-case-step-num">{{n.next()}}</span>
|
||||
<!-- <span class="use-case-step-length">(1 hour)</span> -->
|
||||
## <a href="https://github.com/ripple/ripple-lib" target="_blank">Access the `ripple-lib` repo <i class="fa fa-external-link" aria-hidden="true"></i></a> <!--#{ fix for md highlighting_ #}-->
|
||||
## [Access the `ripple-lib` repo](https://github.com/ripple/ripple-lib)
|
||||
|
||||
`ripple-lib` is an open-source project. You can take a look at `ripple-lib` code simply by accessing the `ripple-lib` GitHub repo. Before contributing or reporting bugs, we recommend that you get to know the code and developer experience by performing the following tasks.
|
||||
|
||||
|
||||
<span class="use-case-step-num">{{n.next()}}</span>
|
||||
<!-- <span class="use-case-step-length">(1 hour)</span> -->
|
||||
## [Set up and run a `rippled` server](manage-the-rippled-server.html)
|
||||
|
||||
RippleAPI is an API for interacting with the XRP Ledger. The core peer-to-peer server that manages the XRP Ledger is `rippled`. Optionally, you can set up and run a `rippled` server to understand its developer experience and functionality. Anyone can run their own `rippled` server that follows the network and keeps a complete copy of the XRP Ledger.
|
||||
|
||||
|
||||
<span class="use-case-step-num">{{n.next()}}</span>
|
||||
<!-- <span class="use-case-step-length">(1 hour)</span> -->
|
||||
## [Get a Test Net XRP Ledger account](xrp-test-net-faucet.html)
|
||||
|
||||
Use the XRP Test Net Faucet to get a test account on the XRP Test Network. If you set up a `rippled` server, you can connect it to the XRP Test Net to make test calls and get to know the XRP Ledger.
|
||||
|
||||
|
||||
<span class="use-case-step-num">{{n.next()}}</span>
|
||||
<!-- <span class="use-case-step-length">(1 hour)</span> -->
|
||||
## [Set up your `ripple-lib` development environment](get-started-with-rippleapi-for-javascript.html#environment-setup)
|
||||
|
||||
`ripple-lib` requires Node.js and a few dependencies. We recommend using <a href="https://nodejs.org/en/" target="_blank">Node.js v10 LTS <i class="fa fa-external-link" aria-hidden="true"></i></a> <!--#{ fix for md highlighting_ #}--> and <a href="https://yarnpkg.com/en/" target="_blank">Yarn <i class="fa fa-external-link" aria-hidden="true"></i></a> <!--#{ fix for md highlighting_ #}--> dependency management. Also, be sure to create your own fork of the `ripple-lib` repository on GitHub so you can contribute pull requests to the official repo.
|
||||
`ripple-lib` requires Node.js and a few dependencies. We recommend using [Node.js v10 LTS](https://nodejs.org/en/) and [Yarn](https://yarnpkg.com/en/) dependency management. Also, be sure to create your own fork of the `ripple-lib` repository on GitHub so you can contribute pull requests to the official repo.
|
||||
|
||||
|
||||
<span class="use-case-step-num">{{n.next()}}</span>
|
||||
<!-- <span class="use-case-step-length">(1 hour)</span> -->
|
||||
## [Run your first `ripple-lib` script](get-started-with-rippleapi-for-javascript.html#first-rippleapi-script)
|
||||
|
||||
Examine and run the `get-account-info.js` script. Use it to get a feel for how RippleAPI scripts work and to verify that your RippleAPI interface is working.
|
||||
|
||||
|
||||
<span class="use-case-step-num">{{n.next()}}</span>
|
||||
<!-- <span class="use-case-step-length">(1 hour)</span> -->
|
||||
## <a href="https://github.com/ripple/ripple-lib/pulls" target="_blank">Contribute code <i class="fa fa-external-link" aria-hidden="true"></i></a><!--#{ fix for md highlighting_ #}-->
|
||||
## [Contribute code](https://github.com/ripple/ripple-lib/pulls)
|
||||
|
||||
Now that you have a handle on `ripple-lib`, you may have ideas for how to improve it.
|
||||
|
||||
Perhaps you’re developing on the XRP Ledger and want to contribute some code that enables `ripple-lib` to provide a feature your application needs.
|
||||
|
||||
Need some inspiration? Take a look at our list of <a href="https://github.com/ripple/ripple-lib/issues?utf8=%E2%9C%93&q=label%3A%22help+wanted%22" target="_blank">Help Wanted issues <i class="fa fa-external-link" aria-hidden="true"></i></a> <!--#{ fix for md highlighting_ #}-->.
|
||||
Need some inspiration? Take a look at our list of [Help Wanted issues](https://github.com/ripple/ripple-lib/issues?utf8=%E2%9C%93&q=label%3A%22help+wanted%22)
|
||||
|
||||
Access the `ripple-lib` repo and open an issue or pull request.
|
||||
|
||||
|
||||
<span class="use-case-step-num">{{n.next()}}</span>
|
||||
<!-- <span class="use-case-step-length">(1 hour)</span> -->
|
||||
## <a href="https://github.com/ripple/ripple-lib/issues" target="_blank">Report bugs <i class="fa fa-external-link" aria-hidden="true"></i></a><!--#{ fix for md highlighting_ #}-->
|
||||
## [Report bugs](https://github.com/ripple/ripple-lib/issues)
|
||||
|
||||
As you explore `ripple-lib`, you may find code that you don’t think is working as intended. To report a bug, <a href="https://github.com/ripple/ripple-lib/issues" target="_blank">open an issue <i class="fa fa-external-link" aria-hidden="true"></i></a><!--#{ fix for md highlighting_ #}--> in the `ripple-lib` repo.
|
||||
As you explore `ripple-lib`, you may find code that you don’t think is working as intended. To report a bug, [open an issue](https://github.com/ripple/ripple-lib/issues) in the `ripple-lib` repo.
|
||||
|
||||
If the bug you wish to report is security-related, we urge you to disclose it responsibly through Ripple's <a href="https://ripple.com/bug-bounty/" target="_blank">Bug Bounty program <i class="fa fa-external-link" aria-hidden="true"></i></a>.
|
||||
If the bug you wish to report is security-related, we urge you to disclose it responsibly through Ripple's [Bug Bounty program](https://ripple.com/bug-bounty/).
|
||||
|
||||
@@ -6,58 +6,50 @@ Want to contribute code or a bug report to help improve `rippled`, the core peer
|
||||
|
||||
|
||||
<span class="use-case-step-num">{{n.next()}}</span>
|
||||
<!-- <span class="use-case-step-length">(1 hour)</span> -->
|
||||
## <a href="https://github.com/ripple/rippled" target="_blank">Access the `rippled` repo <i class="fa fa-external-link" aria-hidden="true"></i></a> <!--#{ fix md highlighting_ #}-->
|
||||
## [Access the `rippled` repo](https://github.com/ripple/rippled)
|
||||
|
||||
`rippled` is an open-source project. You can take a look at `rippled` code simply by accessing the `rippled` GitHub repo. Before contributing or reporting bugs, we recommend that you get to know the code and developer experience by performing the following tasks.
|
||||
|
||||
|
||||
<span class="use-case-step-num">{{n.next()}}</span>
|
||||
<!-- <span class="use-case-step-length">(1 hour)</span> -->
|
||||
## [Set up and run a `rippled` server](manage-the-rippled-server.html)
|
||||
|
||||
Set up and run a `rippled` server to understand the developer experience and functionality of the core peer-to-peer server that manages the XRP Ledger. Anyone can run their own `rippled` server that follows the network and keeps a complete copy of the XRP Ledger.
|
||||
|
||||
|
||||
<span class="use-case-step-num">{{n.next()}}</span>
|
||||
<!-- <span class="use-case-step-length">(1 hour)</span> -->
|
||||
## [Try out XRP Ledger integration tools](get-started-with-the-rippled-api.html)
|
||||
|
||||
Take a look at the various tools provided to help developers integrate with the XRP Ledger. From WebSocket and JSON-RPC API endpoints to the `ripple-lib` JavaScript library, take a look at the modes of integration offered to the developer community.
|
||||
|
||||
|
||||
<span class="use-case-step-num">{{n.next()}}</span>
|
||||
<!-- <span class="use-case-step-length">(1 hour)</span> -->
|
||||
## [Get a sandbox XRP Ledger account](xrp-test-net-faucet.html)
|
||||
|
||||
Use the XRP Ledger Test Net to get a sandbox account. Connect your `rippled server` to the Test Net to make test calls and get to know the XRP Ledger.
|
||||
|
||||
|
||||
<span class="use-case-step-num">{{n.next()}}</span>
|
||||
<!-- <span class="use-case-step-length">(1 hour)</span> -->
|
||||
## Set up your development environment
|
||||
|
||||
A `rippled` development environment has a C++ compiler, access to the necessary libraries to compile `rippled` (such as Boost), and an editor for making changes to the source files. See the <a href="https://github.com/ripple/rippled" target="_blank">`rippled` repository <i class="fa fa-external-link" aria-hidden="true"></i></a><!--#{ fix md highlighting_ #}--> for the latest recommendations of each. You should also create your own fork of the `rippled` repository on GitHub so you can contribute pull requests to the official repo. <!-- for future, awaiting links to a few rippled repo md files - Nik -->
|
||||
A `rippled` development environment has a C++ compiler, access to the necessary libraries to compile `rippled` (such as Boost), and an editor for making changes to the source files. See the [`rippled` repository](https://github.com/ripple/rippled) for the latest recommendations of each. You should also create your own fork of the `rippled` repository on GitHub so you can contribute pull requests to the official repo. <!-- for future, awaiting links to a few rippled repo md files - Nik -->
|
||||
|
||||
|
||||
<span class="use-case-step-num">{{n.next()}}</span>
|
||||
<!-- <span class="use-case-step-length">(1 hour)</span> -->
|
||||
## <a href="https://github.com/ripple/rippled/blob/develop/docs/CodingStyle.md" target="_blank">Familiarize yourself with `rippled`'s coding style <i class="fa fa-external-link" aria-hidden="true"></i></a><!--#{ fix md highlighting_ #}-->
|
||||
## [Familiarize yourself with `rippled`'s coding style](https://github.com/ripple/rippled/blob/develop/docs/CodingStyle.md)
|
||||
|
||||
Before you start contributing code to `rippled,` take some time to familiarize yourself with the coding standards used in the `rippled` repo. These standards gradually evolve and propagate through code reviews. Some aspects are enforced more strictly than others.
|
||||
|
||||
|
||||
<span class="use-case-step-num">{{n.next()}}</span>
|
||||
<!-- <span class="use-case-step-length">(1 hour)</span> -->
|
||||
## <a href="https://github.com/ripple/rippled/pulls" target="_blank">Contribute code <i class="fa fa-external-link" aria-hidden="true"></i></a><!--#{ fix md highlighting_ #}-->
|
||||
## [Contribute code](https://github.com/ripple/rippled/pulls)
|
||||
|
||||
Now that you have a handle on `rippled`, you may have ideas for how to improve it. Perhaps you’re developing on the XRP Ledger and want to contribute some code that enables the XRP Ledger to provide a feature your application needs. Access the `rippled` repo and open an issue or pull request.
|
||||
|
||||
|
||||
<span class="use-case-step-num">{{n.next()}}</span>
|
||||
<!-- <span class="use-case-step-length">(1 hour)</span> -->
|
||||
## <a href="https://github.com/ripple/rippled/issues" target="_blank">Report bugs <i class="fa fa-external-link" aria-hidden="true"></i></a><!--#{ fix md highlighting_ #}-->
|
||||
## [Report bugs](https://github.com/ripple/rippled/issues)
|
||||
|
||||
As you explore `rippled`, you may find code that you don’t think is working as intended. To report a bug, <a href="https://github.com/ripple/rippled/issues" target="_blank">open an issue <i class="fa fa-external-link" aria-hidden="true"></i></a><!--#{ fix md highlighting_ #}--> in the `rippled` repo.
|
||||
As you explore `rippled`, you may find code that you don’t think is working as intended. To report a bug, [open an issue](https://github.com/ripple/rippled/issues) in the `rippled` repo.
|
||||
|
||||
If the bug you wish to report is security-related, we urge you to disclose it responsibly through Ripple's <a href="https://ripple.com/bug-bounty/" target="_blank">Bug Bounty program <i class="fa fa-external-link" aria-hidden="true"></i></a>.
|
||||
If the bug you wish to report is security-related, we urge you to disclose it responsibly through Ripple's [Bug Bounty program](https://ripple.com/bug-bounty/).
|
||||
|
||||
@@ -47,7 +47,7 @@ To protect a production validator from DDoS attacks, you can use a stock `ripple
|
||||
## [Associate your validator with a web domain you control](run-rippled-as-a-validator.html#provide-domain-verification)
|
||||
|
||||
Network participants are unlikely to trust a validator without knowing who is operating it. To address this concern, associate your validator with a web domain you control.
|
||||
You may also wish to have your validator listed with one or more validator tracking services, such as the <a href="https://xrpcharts.ripple.com/#/validators" target="_blank">XRP Charts Validator Registry <i class="fa fa-external-link" aria-hidden="true"></i></a>.<!--#{ fix md highlighting_ #}-->
|
||||
You may also wish to have your validator listed with one or more validator tracking services, such as the [XRP Charts Validator Registry](https://xrpcharts.ripple.com/#/validators).
|
||||
|
||||
|
||||
### Related Tasks
|
||||
|
||||
@@ -20,6 +20,10 @@ content_static_path: img
|
||||
# PDF creation needs a dir for temporary files
|
||||
temporary_files_path: /tmp/
|
||||
|
||||
# Custom filters live here and start with filter_
|
||||
filter_paths:
|
||||
- tool
|
||||
|
||||
default_filters:
|
||||
- multicode_tabs
|
||||
- standardize_header_ids
|
||||
@@ -27,6 +31,7 @@ default_filters:
|
||||
- callouts
|
||||
- badges
|
||||
- link_replacement
|
||||
- external_links
|
||||
|
||||
callout_class: "devportal-callout"
|
||||
|
||||
|
||||
31
tool/filter_external_links.py
Normal file
31
tool/filter_external_links.py
Normal file
@@ -0,0 +1,31 @@
|
||||
################################################
|
||||
## External Link Marker
|
||||
## Author: Rome Reginelli
|
||||
## Copyright: Ripple Labs, 2019
|
||||
##
|
||||
## Finds external links and changes them to:
|
||||
## - open in a new tab (target="_blank")
|
||||
## - end with an "external link" icon
|
||||
## (FontAwesome required)
|
||||
################################################
|
||||
|
||||
import re
|
||||
|
||||
|
||||
def filter_soup(soup, **kwargs):
|
||||
"""
|
||||
Adds an external link marker to external links
|
||||
and makes them open in new tabs.
|
||||
"""
|
||||
|
||||
extern_regex = re.compile(r"^https?://")
|
||||
|
||||
links = soup.find_all("a", href=True)
|
||||
for link in links:
|
||||
if extern_regex.match(link["href"]):
|
||||
link["target"] = "_blank"
|
||||
ex_link_marker = soup.new_tag("i", attrs={
|
||||
"class":"fa fa-external-link",
|
||||
"aria-hidden": "true"})
|
||||
link.append(" ")
|
||||
link.append(ex_link_marker)
|
||||
Reference in New Issue
Block a user