This adds "require" functionality which allows invariants to be checked after processing transactions using a simple, terse interface. Also adds more comprehensive test coverage for the framework itself, verifying that the more sophisticated language constructs work in all ways. All functions and classes have been split up into individual files which may be included a-la carte, or accessed through a single convenience header <ripple/test/jtx.h> * Move, rename all sources * Put everything in the jtx namespace * Add sendmax funclet * Rename funclet to paths * Correctly set input issue and destination amount in path * Conditionally invoke funclets using is_call_possible * Add any() function means "any currency they will accept" * Add None, none modifiers on amounts to mean "no amount" * Add require conditions to JTx * Add Env::require variadic condition checker * Add le, rename some items for consistency * Add require functors, balance, flags, nflags * Add require functors lines, owners, offers, tickets * Add ticket example of extending the system * Add noripple modifier for funding accounst * Add Env::st to parse Json into STTx * Add tests to ensure correctness of fund() * Add virtual Env member hooks * Add Env::balance * Add Env::seq * Add PrettyAmount * Add all container Account support * IOU and XRP return PrettyAmount amounts * IOUs print the issuer's name instead of base58 * Fix int and double conversions to XRP * Fix autofill of Env::fund with noripple
#The World’s Fastest and Most Secure Payment System
What is Ripple?
Ripple is the open-source, distributed payment protocol that enables instant payments with low fees, no chargebacks, and currency flexibility (for example dollars, yen, euros, bitcoins, or even loyalty points). Businesses of any size can easily build payment solutions such as banking or remittance apps, and accelerate the movement of money. Ripple enables the world to move value the way it moves information on the Internet.
What is a Gateway?
Ripple works with gateways: independent businesses which hold customer deposits in various currencies such as U.S. dollars (USD) or Euros (EUR), in exchange for providing cryptographically-signed issuances that users can send and trade with one another in seconds on the Ripple network. Within the protocol, exchanges between multiple currencies can occur atomically without any central authority to monitor them. Later, customers can withdraw their Ripple balances from the gateways that created those issuances.
How do Ripple payments work?
A sender specifies the amount and currency the recipient should receive and Ripple automatically converts the sender’s available currencies using the distributed order books integrated into the Ripple protocol. Independent third parties acting as market makers provide liquidity in these order books.
Ripple uses a pathfinding algorithm that considers currency pairs when converting from the source to the destination currency. This algorithm searches for a series of currency swaps that gives the user the lowest cost. Since anyone can participate as a market maker, market forces drive fees to the lowest practical level.
What can you do with Ripple?
The protocol is entirely open-source and the network’s shared ledger is public information, so no central authority prevents anyone from participating. Anyone can become a market maker, create a wallet or a gateway, or monitor network behavior. Competition drives down spreads and fees, making the network useful to everyone.
###Key Protocol Features
-
XRP is Ripple’s native [cryptocurrency] (http://en.wikipedia.org/wiki/Cryptocurrency) with a fixed supply that decreases slowly over time, with no mining. XRP acts as a bridge currency, and pays for transaction fees that protect the network against spam.

-
Pathfinding discovers cheap and efficient payment paths through multiple order books allowing anyone to trade anything. When two accounts aren’t linked by relationships of trust, the Ripple pathfinding engine considers intermediate links and order books to produce a set of possible paths the transaction can take. When the payment is processed, the liquidity along these paths is iteratively consumed in best-first order.

-
Consensus confirms transactions in an atomic fashion, without mining, ensuring efficient use of resources.
###Join The Ripple Community
![]() |
![]() |
![]() |
|---|---|---|
| Transact on the fastest payment infrastructure | Build Imaginative Apps | Contribute to the Ripple Protocol Implementation |
#rippled - Ripple P2P server
This is the repository for Ripple's rippled, reference P2P server.
###Build instructions:
###Setup instructions:
###Issues
Repository Contents
./bin
Scripts and data files for Ripple integrators.
./build
Intermediate and final build outputs.
./Builds
Platform or IDE-specific project files.
./doc
Documentation and example configuration files.
./src
Source code directory. Some of the directories contained here are external repositories inlined via git-subtree, see the corresponding README for more details.
./test
Javascript / Mocha tests.
License
Ripple is open source and permissively licensed under the ISC license. See the LICENSE file for more details.
###For more information:
- Ripple Wiki - https://ripple.com/wiki/
- Ripple Primer - https://ripple.com/ripple_primer.pdf
- Ripple Primer (Market Making) - https://ripple.com/ripple-mm.pdf
- Ripple Gateway Primer - https://ripple.com/ripple-gateways.pdf
- Consensus - https://wiki.ripple.com/Consensus





