Merge pull request #342 from jhaaaa/add-use-cases

drafts of use cases
This commit is contained in:
Rome Reginelli
2018-05-10 15:10:31 -07:00
committed by GitHub
5 changed files with 188 additions and 23 deletions

View File

@@ -0,0 +1,63 @@
# Contribute Code to rippled
Want to contribute code or a bug report to help improve `rippled`, the core peer-to-peer server that manages the XRP Ledger? Heres a roadmap to the high-level tasks thatll have you reviewing code and functionality in no time.
{% 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/rippled" target="_blank">Access the `rippled` repo <i class="fa fa-external-link" aria-hidden="true"></i></a> <!--#{ fix md highlighting_ #}-->
`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](xxxxx.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](xxxxx.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](xxxxx.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](xxxxx.html)
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. <!-- TODO: awaiting links to a few rippled repo md files -->
<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_ #}-->
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_ #}-->
Now that you have a handle on `rippled`, you may have ideas for how to improve it. Perhaps youre 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_ #}-->
As you explore `rippled`, you may find code that you dont 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.
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>.

View File

@@ -1,25 +1,58 @@
# List XRP in Your Exchange (Experimental) # List XRP in Your Exchange
Does your exchange want to list XRP? Here's a roadmap to the high-level tasks you'll need to perform. When you've completed each of these tasks, you'll have your exchange listing XRP. Does your exchange want to list XRP, enabling your users to deposit, trade, and withdraw XRP? Here's a roadmap to the high-level tasks you'll need to perform.
{% set n = cycler(* range(1,99)) %} {% set n = cycler(* range(1,99)) %}
<span class="use-case-step-num">{{n.next()}}</span> <span class="use-case-step-num">{{n.next()}}</span>
<span class="use-case-step-length">(1 hour)</span> <!-- <span class="use-case-step-length">(1 hour)</span> -->
## [Set Up and Run a rippled Server](tutorial-rippled-setup.html) ## [Meet prerequisites for listing XRP](Listing XRP as an Exchange > Prerequisites for Supporting XRP.html)
{{lipsum(n=1, html=False)}} Put in place the foundation and operational processes needed to efficiently and securely list XRP in your exchange.
This includes creating and securing XRP Ledger accounts, implementing internal balance sheets, adopting appropriate security procedures, and complying with any applicable regulations.
<span class="use-case-step-num">{{n.next()}}</span> <span class="use-case-step-num">{{n.next()}}</span>
<span class="use-case-step-length">(5 minutes)</span> <!-- <span class="use-case-step-length">(1 hour)</span> -->
## [Get Test Net XRP](xrp-test-net-faucet.html) ## [Set up and run a `rippled` server](Manage the rippled Server.html)
{{lipsum(n=1, html=False)}} `rippled` is the core peer-to-peer server that manages the XRP Ledger.
While it isnt required, your exchange should consider running your own `rippled` server to be able to control the speed and reliability of your exchanges XRP transaction processing.
You can start out running one `rippled` server to support development and exploration. If required for your use case, you can then build up to an enterprise deployment that consists of multiple clustered servers with one private-peer validator, for example.
[Running a `rippled` server in validator mode](run-a-rippled-validator.html) enables your exchange to contribute to the strength and decentralization of the XRP Ledger network. Even if your `rippled` server isnt included in published validator lists, it is still contributing (albeit indirectly) and continues to build up reputation over time.
<span class="use-case-step-num">{{n.next()}}</span> <span class="use-case-step-num">{{n.next()}}</span>
<span class="use-case-step-length">(1 hour)</span> <!-- <span class="use-case-step-length">(1 hour)</span> -->
## [Try Out XRP Ledger Integration Tools](websocket-api-tool.html) ## [Try out XRP Ledger integration tools](Get Started with the rippled API.html)
{{lipsum(n=1, html=False)}} Take a look at the various tools provided to help you integrate with the XRP Ledger.
From WebSocket and JSON-RPC API endpoints to the RippleAPI JavaScript library, find a mode of integration that works with your technology.
<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 Ledger Test Net.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. Once youre ready to transact in real XRP, you can switch over to transacting on the live XRP Ledger.
<span class="use-case-step-num">{{n.next()}}</span>
<!-- <span class="use-case-step-length">(1 hour)</span> -->
## [Understand and code integrations to support the flow of funds](Listing XPR as an Exchange > Flow of Funds.html)
To support listing XRP, code integrations with the XRP Ledger to deposit XRP into your exchange, trade XRP on the exchange, rebalance XRP holding, and withdraw XRP from your exchange.
### Related Tasks
- [Contribute Code to `rippled`](contribute-code-to-rippled.html)
- [Subscribe to XRP Ledger Updates](x)
- [Capacity Planning](x)
- [Look Up an XRP Ledger Accounts Transaction History](x)
- [Implement Destination Tags](x)

View File

@@ -0,0 +1,55 @@
# Run a rippled Validator
Each `rippled` server (not running in stand-alone mode) connects to a network of peers, relays cryptographically signed transactions, and maintains a local copy of the complete shared global ledger. A `rippled` server running in validator mode additionally participates in the consensus process and is a part of an interconnected web of validators who each trust a specific set of validators not to collude. Heres a roadmap to the high-level tasks youll need to perform to run a `rippled` validator.
{% set n = cycler(* range(1,99)) %}
<span class="use-case-step-num">{{n.next()}}</span>
<!-- <span class="use-case-step-length">(1 hour)</span> -->
## [Understand what it means to run a validator](Manage the rippled Server > Reasons to Run a Validator - includes Properties of a Good Validator.html)
If you or your organization relies on the XRP Ledger, it is in your interest to run a validator to participate in the consensus process and provide a trusted validator that supports the ongoing decentralization of the XRP Ledger.
If you are an independent developer, you may want to run a validator as a way to participate in and dive into the technology that supports the XRP Ledger network.
While validator diversity is important, not every validator is likely to be widely trusted and validator list publishers may require validators to meet stringent criteria before they list them on validator lists.
Despite that, it is important to note that every validator contributes to the long-term health and decentralization of the XRP Ledger.
<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)
Install and run a `rippled` server. Anyone can run their own `rippled` server that follows the network and keeps a complete copy of the XRP Ledger.
For configuration guidance and network and hardware requirements, see [Capacity Planning](capacity-planning.html).
<span class="use-case-step-num">{{n.next()}}</span>
<!-- <span class="use-case-step-length">(1 hour)</span> -->
## [Enable validation on your rippled server](Manage the rippled server > Run a Validator.html)
To configure your `rippled` server to run in validator mode, generate a validator key pair and add it to your `rippled.cfg` file.
<span class="use-case-step-num">{{n.next()}}</span>
<!-- <span class="use-case-step-length">(1 hour)</span> -->
## [Set up a stock rippled server as a proxy](Manage the rippled server > Run a Validator > Public-Facing Server.html)
To protect a production validator from DDoS attacks, you can use a stock `rippled` server as a proxy between the validator and the outside network.
<span class="use-case-step-num">{{n.next()}}</span>
<!-- <span class="use-case-step-length">(1 hour)</span> -->
## [Associate your validator with a web domain you control](Manage the rippled server > Run a Validator > Domain Verification.html)
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_ #}-->
### Related Tasks
- [Contribute Code to `rippled`](contribute-code-to-rippled.html)

View File

@@ -4,23 +4,17 @@ Use these roadmaps to walk you, task-by-task, through implementing your use case
Here are some of our users' most popular use cases: Here are some of our users' most popular use cases:
* **[List XRP in My Exchange](tutorial-listing-xrp.html)** * **[Run a rippled Validator](run-a-rippled-validator.html)**
Learn how to install, run, and maintain a `rippled` server in validator mode.
* **[List XRP in My Exchange](list-xrp-in-your-exchange.html)**
Integrate with the XRP Ledger to be able to list XRP in your exchange, enabling your users to deposit and withdraw XRP. Integrate with the XRP Ledger to be able to list XRP in your exchange, enabling your users to deposit and withdraw XRP.
* **[Provide Liquidity in the XRP Ledger](x)** * **[Contribute Code to `rippled`](contribute-code-to-rippled.html)**
<!--{# TODO: link #}-->
Integrate with the XRP Ledger to place offers algorithmically or through your own custom trading interface, providing liquidity between different gateways and their users.
* **[Contribute Code to `rippled`](x)**
<!--{# TODO: link #}-->
Help us improve the open source reference server implementation of `rippled`, the server that is the core of the XRP Ledger peer-to-peer network. Help us improve the open source reference server implementation of `rippled`, the server that is the core of the XRP Ledger peer-to-peer network.
* **[Maintain rippled Servers](x)**
<!--{# TODO: link #}-->
Learn how to install, run, and maintain a `rippled` server, whether you need a stock server, test server, or robust production validator.
Want to see a roadmap for a case not listed here? [Contact us >](mailto:docs@ripple.com) Want to see a roadmap for a case not listed here? [Contact us >](mailto:docs@ripple.com)

View File

@@ -1568,6 +1568,16 @@ pages:
targets: targets:
- local - local
- md: use-cases/run-a-rippled-validator.md
html: run-a-rippled-validator.html
funnel: Use Cases
template: template-use-case.html
useful_background:
- amendments.html
- the-rippled-server.html #TODO - add to useful_background when available: fee voting, consensus principles & rules
targets:
- local
- md: use-cases/list-xrp-in-your-exchange.md - md: use-cases/list-xrp-in-your-exchange.md
html: list-xrp-in-your-exchange.html html: list-xrp-in-your-exchange.html
funnel: Use Cases funnel: Use Cases
@@ -1579,6 +1589,16 @@ pages:
targets: targets:
- local - local
- md: use-cases/contribute-code-to-rippled.md
html: contribute-code-to-rippled.html
funnel: Use Cases
template: template-use-case.html
useful_background:
- consensus.html
- amendments.html #TODO add to useful_background: stand-alone mode, rippled.cfg reference (future feature)
targets:
- local
# Dev Tools -------------------------------------------------------------------- # Dev Tools --------------------------------------------------------------------
- md: dev-tools/dev-tools.md - md: dev-tools/dev-tools.md