diff --git a/content/_img-sources/ecosystem.uxf b/content/_img-sources/ecosystem.uxf new file mode 100644 index 0000000000..70195c4f0b --- /dev/null +++ b/content/_img-sources/ecosystem.uxf @@ -0,0 +1,411 @@ + + + 10 + + UMLGeneric + + 550 + 540 + 200 + 90 + + halign=left + +rippled server + + + + Relation + + 580 + 480 + 50 + 80 + + lt=()-[WS] + 20.0;10.0;20.0;60.0 + + + UMLGeneric + + 350 + 360 + 170 + 70 + + halign=left + +ripple-lib (JavaScript) + + + + Relation + + 640 + 480 + 90 + 80 + + lt=()-[JSON-RPC] + 40.0;10.0;40.0;60.0 + + + Relation + + 420 + 420 + 210 + 80 + + lt=)- + 180.0;50.0;180.0;30.0;10.0;10.0 + + + UMLClass + + 290 + 90 + 480 + 70 + + Apps & Services +(Exchanges, wallets, explorers, etc.) +bg=white +style=wordwrap +transparency=0 +group=1 + + + + UMLClass + + 280 + 80 + 480 + 70 + + bg=white +transparency=0 +group=1 + + + + Relation + + 580 + 150 + 50 + 350 + + lt=)- + 20.0;320.0;20.0;10.0 + + + UMLGeneric + + 350 + 240 + 130 + 70 + + +halign=left +Data API* + + + + Relation + + 360 + 300 + 120 + 80 + + lt=[RippleAPI]- + 70.0;60.0;10.0;30.0;10.0;10.0 + + + Relation + + 360 + 190 + 90 + 70 + + lt=()-[REST-like] + 40.0;10.0;40.0;50.0 + + + Text + + 670 + 570 + 50 + 50 + + valign=center +halign=center + + +fontsize=7.5 +Internal +DBs +bg=white +transparency=0 +customelement= +// DB Symbol +drawArc(0,0,width,height*2/5,0,180,true) fg=black bg=white //Parameters (x, y, width, height, start, extent, open) +drawArc(0,0,width,height*2/5,180,180,true) fg=black //Parameters (x, y, width, height, start, extent, open) +drawLine(0,height/5,0,height*4/5)fg=black //Parameters (x1, y1, x2, y2) +drawLine(width,height/5,width,height*4/5)fg=black //Parameters (x1, y1, x2, y2) +drawArc(0,height*3/5,width,height*2/5,180,180,true) fg=black bg=white //Parameters (x, y, width, height, start, extent, open) + + + + UMLClass + + 270 + 70 + 480 + 70 + + bg=white +transparency=0 +group=1 + + + + Relation + + 380 + 150 + 50 + 60 + + lt=)- + 20.0;30.0;20.0;10.0 + + + Relation + + 400 + 150 + 140 + 230 + + lt=- + 10.0;210.0;120.0;180.0;120.0;10.0 + + + Relation + + 660 + 150 + 50 + 350 + + lt=)- + 20.0;320.0;20.0;10.0 + + + Text + + 290 + 250 + 50 + 50 + + valign=center +halign=center + + +fontsize=7.5 +Relational +DBs +bg=white +transparency=0 +customelement= +// DB Symbol +drawArc(0,0,width,height*2/5,0,180,true) fg=black bg=white //Parameters (x, y, width, height, start, extent, open) +drawArc(0,0,width,height*2/5,180,180,true) fg=black //Parameters (x, y, width, height, start, extent, open) +drawLine(0,height/5,0,height*4/5)fg=black //Parameters (x1, y1, x2, y2) +drawLine(width,height/5,width,height*4/5)fg=black //Parameters (x1, y1, x2, y2) +drawArc(0,height*3/5,width,height*2/5,180,180,true) fg=black bg=white //Parameters (x, y, width, height, start, extent, open) + + + + Relation + + 470 + 600 + 120 + 30 + + lt=[Peer]-[Peer] + 90.0;10.0;20.0;10.0 + + + UMLGeneric + + 300 + 560 + 200 + 70 + + rippled servers +(direct & indirect peers) +halign=left + + + + Relation + + 280 + 540 + 220 + 90 + + + 20.0;70.0;10.0;70.0;10.0;10.0;200.0;10.0;200.0;20.0 + + + Relation + + 270 + 530 + 220 + 90 + + + 20.0;70.0;10.0;70.0;10.0;10.0;200.0;10.0;200.0;20.0 + + + Relation + + 330 + 260 + 40 + 40 + + + 10.0;20.0;20.0;20.0 + + + Text + + 80 + 90 + 160 + 40 + + *Apps & Services* +style=wordwrap + + + + Relation + + 40 + 190 + 830 + 30 + + lt=.. + 10.0;10.0;810.0;10.0 + + + Text + + 80 + 250 + 160 + 40 + + *Middleware APIs* +style=wordwrap + + + + Relation + + 40 + 320 + 830 + 30 + + lt=.. + 10.0;10.0;810.0;10.0 + + + Text + + 80 + 370 + 160 + 40 + + *Programming Libraries* +style=wordwrap + + + + Relation + + 40 + 480 + 830 + 30 + + lt=.. + 10.0;10.0;810.0;10.0 + + + Text + + 80 + 510 + 160 + 70 + + *Peer-to-Peer Network* +style=wordwrap + + + + Relation + + 840 + 30 + 30 + 670 + + lt=.. + 10.0;650.0;10.0;10.0 + + + UMLClass + + 270 + 510 + 500 + 150 + + lt=. +halign=left + XRP Ledger + + + + Text + + 350 + 280 + 130 + 30 + + style=wordwrap +fontsize=8 +*Do not use for mission-critical services. + + + diff --git a/content/concepts/introduction/software-ecosystem.md b/content/concepts/introduction/software-ecosystem.md index a8b677cc4d..d217c49f35 100644 --- a/content/concepts/introduction/software-ecosystem.md +++ b/content/concepts/introduction/software-ecosystem.md @@ -4,11 +4,15 @@ The XRP Ledger is home to a deep, layered ecosystem of software projects powerin ## Stack Levels -The [core of the XRP Ledger](#rippled-the-core-server) is a peer-to-peer network of always-on servers sharing transactions, engaging in the [consensus process](consensus.html) and processing [transactions](transaction-basics.html). Everything else in the XRP Ledger ecosystem is ultimately built on top of this peer-to-peer network, directly or indirectly. +[![Ecosystem diagram with the four layers: XRP Ledger peer-to-peer network on the bottom, Programming Libraries above that, Middleware next, and Apps and Services at the top](img/ecosystem.png)](img/ecosystem.png) -[_Programming libraries_](#programming-libraries) exist in higher level software, where they are imported directly into program code, and contain premade implementations of routines to access the XRP Ledger. +- The [basis of the XRP Ledger](#rippled-the-core-server) is a peer-to-peer network of always-on servers sharing transactions, engaging in the [consensus process](consensus.html) and processing [transactions](transaction-basics.html). Everything else in the XRP Ledger ecosystem is ultimately built on top of this peer-to-peer network, directly or indirectly. -[_Middleware services_](#middleware) provide indirect access to XRP Ledger data, frequently with their own data storage and processing. +- [_Programming Libraries_](#programming-libraries) exist in higher level software, where they are imported directly into program code, and contain premade implementations of routines to access the XRP Ledger. + +- [_Middleware_](#middleware) provides indirect access to XRP Ledger data. Applications in this layer frequently have their own data storage and processing. + +- [_Apps and Services_](#apps-and-services) provide user-level interaction with the ### rippled: The Core Server @@ -35,9 +39,23 @@ The [Data API](data-api.html) is an example of a middleware service on top of th + ### Apps and Services +Atop the stack is where the truly exciting things happen. Apps and services provide a way for users and devices to connect to the XRP Ledger. At this level, [exchanges list XRP](list-xrp-in-your-exchange.html), [gateways issue other currencies](become-an-xrp-ledger-gateway.html) for use in the decentralized exchange, and wallets provide user interfaces for buying, selling, or just HODLing holding XRP. Many other possibilities exist, including additional services layered even higher. + +A great way to build applications that are compatible with not only XRP but lots of other ways of denominating value is to use the [Interledger Protocol][] with settlement in XRP. + +There are numerous other examples of projects using XRP and adjacent technologies to interact with users. Ripple's enterprise customers already have the option to use XRP through [on-demand liquidity services](https://www.ripple.com/ripplenet/on-demand-liquidity/). For more examples of businesses and software built on the XRP Ledger, see [Xpring Partners](https://xpring.io/#partners) or XRPChat's excellent [Links & Resources](https://www.xrpchat.com/links/) listing. + + ## See Also +- [Xpring Partners](https://xpring.io/#partners) - [Technical FAQ](technial-faq.html) - [XRPChat Links & Resources](https://www.xrpchat.com/links/) - Includes updated lists of gateways and exchanges, wallets and storage, apps, and more. + + +{% include '_snippets/rippled-api-links.md' %} +{% include '_snippets/tx-type-links.md' %} +{% include '_snippets/rippled_versions.md' %} diff --git a/img/ecosystem.png b/img/ecosystem.png new file mode 100644 index 0000000000..1d445f95c0 Binary files /dev/null and b/img/ecosystem.png differ