Releases: XRPLF/rippled
rippled (XRP Ledger server) Version 2.0.0-b2 (beta)
This is a beta for the next release.
Highlights:
- APIv2(gateway_balances, channel_authorize): update errors (#4618)
- Accept all valid currency codes in API (#4566)
When finalized, the next stable release of rippled
is expected to be the last release for 2023 (given the holidays in Nov/Dec). The major version is bumped because:
api_version
2 general availability is expected.- This api_version is not available yet (except in beta, requiring a configuration change), but it will be in the next release.
- Notable performance improvements in TPS (transactions per second).
- XLS-38 sidechains support
- This is a large change and adds significant new functionality to the protocol.
- Lastly, many aspects of the code have been refactored and changed since the previous major version bump.
What's Changed
- docs(BUILD): make it easier to find environment.md by @intelliot in #4507
- [TRIVIAL] Remove unused variable flagged by clang 14 by @ximinez in #4672
- Update comment about return value of LedgerHistory::fixIndex by @ckeshava in #4574
- Update secp256k1 to 0.3.2 by @thejohnfreeman in #4653
- [TRIVIAL] docs(RELEASENOTES): improve 1.12.0 release notes by @intelliot in #4691
- docs(API-CHANGELOG): api_version 2 is expected with 2.0 by @intelliot in #4633
- docs(overlay): add URL of blog post and clarify wording by @ckeshava in #4635
- Link Boost.Json by @thejohnfreeman in #4632
- APIv2(gateway_balances, channel_authorize): update errors by @PeterChen13579 in #4618
- Fix typo in BUILD.md by @ForwardSlashBack in #4718
- Add ProtocolStart and GracefulClose messages by @gregtatcam in #3839
- Add .build to .gitignore by @Bronek in #4722
- Accept all valid currency codes in API by @thejohnfreeman in #4566
- Proposed 2.0.0-b2 by @intelliot in #4723
New Contributors
- @ForwardSlashBack made their first contribution in #4718
- @Bronek made their first contribution in #4722
Full Changelog: 2.0.0-b1...2.0.0-b2
rippled (XRP Ledger server) Version 2.0.0-b1 (beta)
This is a beta for the next release.
Highlights:
- Support for XLS-38 XChainBridge (side chains) (#4292)
- Several changes to improve performance
When finalized, the next stable release of rippled
is expected to be the last release for 2023 (given the holidays in Nov/Dec). The major version is bumped for the following reasons:
api_version
2 general availability- This api_version is not available yet (except in beta, requiring a configuration change), but it will be in the next release.
- Notable performance improvements in TPS (transactions per second).
- XLS-38 sidechains support
- This is a large change and adds significant new functionality to the protocol.
- Lastly, many aspects of the code have been refactored and changed since the previous major version bump.
(Note that the replacement for getting and setting thread name (#4312) was reverted, so it is not in this release.)
What's Changed
- [TRIVIAL] Update rippled-example.cfg docs to clarify usage of ssl_cert vs ssl_chain by @ggprod in #4667
- APIv2(ledger_entry) : check error by @PeterChen13579 in #4630
- refactor: simplify
TxFormats
common fields logic by @mvadari in #4637 - Update SECURITY.md by @intelliot in #4338
- Asynchronously write batches to NuDB. by @mtrippled in #4503
- Apply transaction batches in periodic intervals. by @mtrippled in #4504
- Several changes to improve Consensus stability: by @mtrippled in #4505
- APIv2(account_tx, noripple_check): return error for invalid input (fix #4543) by @PeterChen13579 in #4620
- XLS-38d: XChainBridge (side chains) by @seelabs in #4292
- Match unit tests on start of test name, and split some test classes by @ximinez in #4634
- Remove two unused functions by @seelabs in #4708
New Contributors
Full Changelog: 1.12.0...2.0.0-b1
rippled (XRP Ledger server) Version 1.12.0
Version 1.12.0 of rippled
, the reference server implementation of the XRP Ledger protocol, is now available. This release adds new features and bug fixes, and introduces these amendments:
AMM
Clawback
fixReducedOffersV1
AMM performance testing scripts are available at https://github.com/ripple/RX-Performance-Public.
Sign Up for Future Release Announcements
Action Required
Three new amendments are now open for voting according to the XRP Ledger's amendment process, which enables protocol changes following two weeks of >80% support from trusted validators.
If you operate an XRP Ledger server, upgrade to version 1.12.0 by September 20, 2023 to ensure service continuity. The exact time that protocol changes take effect depends on the voting decisions of the decentralized network.
Install / Upgrade
On supported platforms, see the instructions on installing or updating rippled
.
The XRPL Foundation publishes portable binaries, which are drop-in replacements for the rippled
daemon. See information and downloads for the portable binaries. This will work on most distributions, including Ubuntu 16.04, 18.04, 20.04, and 22.04; CentOS; and others. Please test and open issues on GitHub if there are problems.
Changelog
Amendments, New Features, and Changes
(These are changes which may impact or be useful to end users. For example, you may be able to update your code/workflow to take advantage of these changes.)
-
AMM
: Introduces an automated market maker (AMM) protocol to the XRP Ledger's decentralized exchange, enabling you to trade assets without a counterparty. For more information about AMMs, see: Automated Market Maker. #4294 -
Clawback
(XLS-39): Adds a setting, Allow Clawback, which lets an issuer recover, or claw back, tokens that they previously issued. Issuers cannot enable this setting if they have issued tokens already. For additional documentation on this feature, see: #4553. -
fixReducedOffersV1
: Reduces the occurrence of order books that are blocked by reduced offers. #4512 -
Added WebSocket and RPC port info to
server_info
responses. #4427 -
Removed the deprecated
accepted
,seqNum
,hash
, andtotalCoins
fields from theledger
method. #4244
Bug Fixes and Performance Improvements
(These are behind-the-scenes improvements, such as internal changes to the code, which are not expected to impact end users.)
-
Added a pre-commit hook that runs the clang-format linter locally before committing changes. To install this feature, see: CONTRIBUTING. #4599
-
In order to make it more straightforward to catch and handle overflows: changed the output type of the
mulDiv()
function fromstd::pair<bool, uint64_t>
tostd::optional
. #4243 -
Updated
Handler::Condition
enum values to make the code less brittle. #4239 -
Replaced hand-rolled code with
std::from_chars
for better maintainability. #4473 -
Removed an unused
TypedField
move constructor. #4567
Docs and Build System
-
Updated checkout versions to resolve warnings during GitHub jobs. #4598
-
Fixed an issue with the Debian package build. #4591
-
Updated build instructions with additional steps to take after updating dependencies. #4623
-
Updated contributing doc to clarify that beta releases should also be pushed to the
release
branch. #4589 -
Enabled the
BETA_RPC_API
flag in the default unit tests config, making the API v2 (beta) available to unit tests. #4573 -
Conan dependency management.
-
Added binary hardening and linker flags to enhance security during the build process. #4603
-
Added an Artifactory to the
nix
workflow to improve build times. #4556 -
Added quality-of-life improvements to workflows, using new concurrency control features. #4597
GitHub
The public source code repository for rippled
is hosted on GitHub at https://github.com/XRPLF/rippled.
We welcome all contributions and invite everyone to join the community of XRP Ledger developers to help build the Internet of Value.
Credits
The following people contributed directly to this release:
- Alphonse N. Mousse [email protected]
- Arihant Kothari [email protected]
- Chenna Keshava B S [email protected]
- Denis Angell [email protected]
- Ed Hennis [email protected]
- Elliot Lee [email protected]
- Gregory Tsipenyuk [email protected]
- Howard Hinnant [email protected]
- Ikko Eltociear Ashimine [email protected]
- John Freeman [email protected]
- Manoj Doshi [email protected]
- Mark Travis [email protected]
- Mayukha Vadari [email protected]
- Michael Legleux [email protected]
- Peter Chen [email protected]
- Ramkumar SG
- RichardAH [email protected]
- Rome Reginelli [email protected]
- Scott Schurr [email protected]
- Shawn Xie [email protected]
- drlongle [email protected]
Bug Bounties and Responsible Disclosures:
We welcome reviews of the rippled code and urge researchers to responsibly disclose any issues they may find.
To report a bug, please send a detailed report to: [email protected]
rippled (XRP Ledger server) Version 1.12.0-b2 (beta)
What's Changed
This release makes a breaking change to the Clawback
amendment, and introduces a new amendment called AMM
.
- replace hand-rolled lexicalCast by @dangell7 in #4473
- Fix package definition for Conan by @thejohnfreeman in #4485
- remove deprecated fields in ledger command, fix for #3214 by @ckeshava in #4244
- Trivial: Rename
ServerHandlerImp
toServerHandler
by @scottschurr in #4516 - [Trivial] Fix build references to deleted ServerHandlerImp by @ximinez in #4592
- APIv2(AccountTx): Added error messages on AccountTx by @PeterChen13579 in #4571
- Change enum values to be powers of two (fix #3417) by @ckeshava in #4239
- Cancel overridden workflows by @thejohnfreeman in #4597
- Fix deb package build by @legleux in #4591
- APIv2(account_info): handle invalid "signer_lists" value by @PeterChen13579 in #4585
- [TRIVIAL] Update checkout action version to resolve warning by @ximinez in #4598
- add pre-commit hook for clang-format by @mvadari in #4599
- Add binary hardening compile and link flags by @thejohnfreeman in #4603
- Add allowClawback flag for
account_info
by @shawnxie999 in #4590 - Change the return type of mulDiv to std::optional by @ckeshava in #4243
- APIv2(ledger_entry): return "invalidParams" when fields missing by @arihantkothari in #4552
- docs(CONTRIBUTING): push beta releases to
release
by @intelliot in #4589 - Adapt to change in Conan recipe for NuDB by @thejohnfreeman in #4615
- Introduce AMM support (XLS-30d) by @gregtatcam in #4294
- Update dependencies by @thejohnfreeman in #4595
- Rename
allowClawback
flag toallowTrustLineClawback
by @shawnxie999 in #4617 - BUILD: list steps after dependencies update by @intelliot in #4623
- Proposed 1.12.0-b2 by @intelliot in #4627
New Contributors
- @PeterChen13579 made their first contribution in #4571
- @mvadari made their first contribution in #4599
- @arihantkothari made their first contribution in #4552
- @gregtatcam made their first contribution in #4294
Full Changelog: 1.12.0-b1...1.12.0-b2
PR: #4627
rippled (XRP Ledger server) Version 1.12.0-b1 (beta)
What's Changed
This release introduces two new amendments: fixReducedOffersV1
and Clawback
.
- Enable the Beta RPC API (v2) for all unit tests: by @ximinez in #4573
fixReducedOffersV1
: curtail the occurrence of order books that are blocked by reduced offers by @scottschurr in #4512- Add RPC/WS ports to server_info by @drlongle in #4427
- Use Artifactory remote in nix workflow by @thejohnfreeman in #4556
- Typedfield has bad move constructor by @HowardHinnant in #4567
- XLS-39 Clawback: by @shawnxie999 in #4553
- Proposed 1.12.0-b1 by @intelliot in #4586
Full Changelog: 1.11.0...1.12.0-b1
PR: #4586
rippled (XRP Ledger server) Version 1.11.0
Version 1.11.0 of rippled
, the reference server implementation of the XRP Ledger protocol, is now available.
This release reduces memory usage, introduces the fixNFTokenRemint
amendment, and adds new features and bug fixes. For example, the new NetworkID field in transactions helps to prevent replay attacks with side-chains.
Sign Up for Future Release Announcements
Action Required
The fixNFTokenRemint
amendment is now open for voting according to the XRP Ledger's amendment process, which enables protocol changes following two weeks of >80% support from trusted validators.
If you operate an XRP Ledger server, upgrade to version 1.11.0 by July 5 to ensure service continuity. The exact time that protocol changes take effect depends on the voting decisions of the decentralized network.
Install / Upgrade
On supported platforms, see the instructions on installing or updating rippled
.
What's Changed
New Features and Improvements
- Allow port numbers be be specified using a either a colon or a space by @RichardAH in #4328
- Eliminate memory allocation from critical path: by @nbougalis in #4353
- Make it easy for projects to depend on libxrpl by @thejohnfreeman in #4449
- Add the ability to mark amendments as obsolete by @ximinez in #4291
- Always create the FeeSettings object in genesis ledger by @ximinez in #4319
- Log exception messages in several locations by @drlongle in #4400
- Parse flags in account_info method by @drlongle in #4459
- Add NFTokenPages to account_objects RPC by @RichardAH in #4352
- add jss fields used by clio
nft_info
by @ledhed2222 in #4320 - Introduce a slab-based memory allocator and optimize SHAMapItem by @nbougalis in #4218
- Add NetworkID field to transactions to help prevent replay attacks on and from side-chains by @RichardAH in #4370
- If present, set quorum based on command line. by @mtrippled in #4489
- API does not accept seed or public key for account by @drlongle in #4404
- Add
nftoken_id
,nftoken_ids
andoffer_id
meta fields into NFTTx
responses by @shawnxie999 in #4447
Bug Fixes
- fix(gateway_balances): handle overflow exception by @RichardAH in #4355
- fix(ValidatorSite): handle rare null pointer dereference in timeout by @ximinez in #4420
- RPC commands understand markers derived from all ledger object types by @ximinez in #4361
fixNFTokenRemint
: prevent NFT re-mint: by @shawnxie999 in #4406- Fix a case where ripple::Expected returned a json array, not a value by @scottschurr in #4401
- fix: Ledger data returns an empty list (instead of null) when all entries are filtered out by @drlongle in #4398
- Fix unit test ripple.app.LedgerData by @drlongle in #4484
- Fix the fix for std::result_of by @thejohnfreeman in #4496
- Fix errors for Clang 16 by @thejohnfreeman in #4501
- Ensure that switchover vars are initialized before use: by @seelabs in #4527
- Move faulty assert by @ximinez in #4533
- Fix unaligned load and stores: (#4528) by @seelabs in #4531
- fix node size estimation by @dangell7 in #4536
- fix: remove redundant moves by @ckeshava in #4565
Code Cleanup and Testing
- Replace compare() with the three-way comparison operator in base_uint, Issue and Book by @drlongle in #4411
- Rectify the import paths of boost::function_output_iterator by @ckeshava in #4293
- Expand Linux test matrix by @thejohnfreeman in #4454
- Add patched recipe for SOCI by @thejohnfreeman in #4510
- Switch to self-hosted runners for macOS by @thejohnfreeman in #4511
- [TRIVIAL] Add missing includes by @seelabs in #4555
Docs
- Refactor build instructions by @thejohnfreeman in #4381
- Add install instructions for package managers by @thejohnfreeman in #4472
- Fix typo by @solmsted in #4508
- Update environment.md by @sappenin in #4498
- Update BUILD.md by @oeggert in #4514
- Trivial: add comments for NFToken-related invariants by @scottschurr in #4558
New Contributors
- @drlongle made their first contribution in #4411
- @ckeshava made their first contribution in #4293
- @solmsted made their first contribution in #4508
- @sappenin made their first contribution in #4498
- @oeggert made their first contribution in #4514
Full Changelog: 1.10.1...1.11.0
GitHub
The public source code repository for rippled
is hosted on GitHub at https://github.com/XRPLF/rippled.
We welcome all contributions and invite everyone to join the community of XRP Ledger developers to help build the Internet of Value.
Credits
The following people contributed directly to this release:
- Alloy Networks [email protected]
- Brandon Wilson [email protected]
- Chenna Keshava B S [email protected]
- David Fuelling [email protected]
- Denis Angell [email protected]
- Ed Hennis [email protected]
- Elliot Lee [email protected]
- John Freeman [email protected]
- Mark Travis [email protected]
- Nik Bougalis [email protected]
- RichardAH [email protected]
- Scott Determan [email protected]
- Scott Schurr [email protected]
- Shawn Xie [email protected]
- drlongle [email protected]
- ledhed2222 [email protected]
- oeggert [email protected]
- solmsted [email protected]
Bug Bounties and Responsible Disclosures:
We welcome reviews of the rippled code and urge researchers to
responsibly disclose any issues they may find.
To report a bug, please send a detailed report to:
rippled (XRP Ledger server) Version 1.10.1
Version 1.10.1 of rippled
, the reference server implementation of the XRP Ledger protocol, is now available. This release restores packages for Ubuntu 18.04.
Compared to version 1.10.0, the only C++ code change fixes an edge case in Reporting Mode.
If you are already running version 1.10.0, then upgrading to version 1.10.1 is generally not required.
Sign Up for Future Release Announcements
Install / Upgrade
On supported platforms, see the instructions on installing or updating rippled
.
Changelog
da18c86cbf
Build packages with Ubuntu 18.04f7b3ddd87b
Reporting Mode: Do not attempt to acquire missing data from peer network (#4458)
Full Changelog: 1.10.0...1.10.1
GitHub
The public source code repository for rippled
is hosted on GitHub at https://github.com/XRPLF/rippled.
We welcome all contributions and invite everyone to join the community of XRP Ledger developers to help build the Internet of Value.
Credits
The following people contributed directly to this release:
- John Freeman [email protected]
- Mark Travis [email protected]
- Michael Legleux [email protected]
Bug Bounties and Responsible Disclosures:
We welcome reviews of the rippled code and urge researchers to
responsibly disclose any issues they may find.
To report a bug, please send a detailed report to:
rippled (XRP Ledger server) Version 1.10.0
Version 1.10.0 of rippled
, the reference server implementation of the XRP Ledger protocol, is now available. This release introduces six new amendments, detailed below, and cleans up code to improve performance.
Sign Up for Future Release Announcements
Action Required
Six new amendments are now open for voting according to the XRP Ledger's amendment process, which enables protocol changes following two weeks of >80% support from trusted validators.
If you operate an XRP Ledger server, upgrade to version 1.10.0 by March 21 to ensure service continuity. The exact time that protocol changes take effect depends on the voting decisions of the decentralized network.
Install / Upgrade
On supported platforms, see the instructions on installing or updating rippled
.
New Amendments
-
featureImmediateOfferKilled
: Changes the response code of anOfferCreate
transaction with thetfImmediateOrCancel
flag to returntecKILLED
when no funds are moved. The previous return code oftecSUCCESS
was unintuitive. #4157 -
featureDisallowIncoming
: Enables an account to block incoming checks, payment channels, NFToken offers, and trust lines. #4336 -
featureXRPFees
: Simplifies transaction cost calculations to use XRP directly, rather than calculating indirectly in "fee units" and translating the results to XRP. Updates all instances of "fee units" in the protocol and ledger data to be drops of XRP instead. #4247- BREAKING CHANGE: If this amendment is enabled, the
fee_ref
field will be removed from the Ledger subscription stream, as it will no longer be relevant.
- BREAKING CHANGE: If this amendment is enabled, the
-
fixUniversalNumber
: Simplifies and unifies the code for decimal floating point math. In some cases, this provides slightly better accuracy than the previous code, resulting in calculations whose least significant digits are different than when calculated with the previous code. The different results may cause other edge case differences where precise calculations are used, such as ranking of offers or processing of payments that use several different paths. #4192 -
fixNonFungibleTokensV1_2
: This amendment is a combination of NFToken fixes. #4417 -
fixTrustLinesToSelf
: Trust lines must be between two different accounts, but two exceptions exist because of a bug that briefly existed. This amendment removes those trust lines. 69bb2be
Changelog
New Features and Improvements
-
Improve Handshake in the peer protocol: Switched to using a cryptographically secure PRNG for the Instance Cookie.
rippled
now uses hex encoding for theClosed-Ledger
andPrevious-Ledger
fields in the Handshake. Also added--newnodeid
and--nodeid
command line options. 5a15229 -
RPC tooBusy response now has 503 HTTP status code: Added ripplerpc 3.0, enabling RPC tooBusy responses to return relevant HTTP status codes. This is a non-breaking change that only applies to JSON-RPC when you include
"ripplerpc": "3.0"
in the request. #4143 -
Use the Conan package manager: Added a
conanfile.py
and Conan recipe for Snappy. Removed the RocksDB recipe from the repo; you can now get it from Conan Center. #4367, c2b03fe -
Update Build Instructions: Updated the build instructions to build with the Conan package manager and restructured info for easier comprehension. #4376, #4383
-
Revise CONTRIBUTING: Updated code contribution guidelines.
rippled
is an open source project and contributions are very welcome. #4382 -
Update documented pathfinding configuration defaults:
417cfc2
changed the default Path Finding configuration values, but missed updating the values documented in rippled-example.cfg. Updated those defaults and added recommended values for nodes that want to support advanced pathfinding. #4409 -
Remove gRPC code previously used for the Xpring SDK: Removed gRPC code used for the Xpring SDK. The gRPC API is also enabled locally by default in
rippled-example.cfg
. This API is used for Reporting Mode and Clio. 28f4cc7 -
Switch from C++17 to C++20: Updated
rippled
to use C++20. 92d35e5 -
Support for Boost 1.80.0:: 04ef885
-
Reduce default reserves to 10/2: Updated the hard-coded default reserves to match the current settings on Mainnet. #4329
-
Improve self-signed certificate generation: Improved speed and security of TLS certificate generation on fresh startup. 0ecfc7c
Bug Fixes
-
Update command-line usage help message: Added
manifest
andvalidator_info
to therippled
CLI usage statement. b88ed5a -
Work around gdb bug by changing a template parameter: Added a workaround for a bug in gdb, where unsigned template parameters caused issues with RTTI. #4332
-
Fix clang 15 warnings: #4325
-
Catch transaction deserialization error in doLedgerGrpc: Fixed an issue in the gRPC API, so
Clio
can extract ledger headers and state objects from specific transactions that can't be deserialized byrippled
code. #4323 -
Update dependency: gRPC: New Conan recipes broke the old version of gRPC, so the dependency was updated. #4407
-
Fix Doxygen workflow: Added options to build documentation that don't depend on the library dependencies of
rippled
. #4372 -
Don't try to read SLE with key 0 from the ledger: Fixed the
preclaim
function to check for 0 inNFTokenSellOffer
andNFTokenBuyOffer
before callingLedger::read
. This issue only affected debug builds. #4351 -
Update broken link to hosted Doxygen content: 5e1cb09
Code Cleanup
-
Prevent unnecessary
shared_ptr
copies by accepting a value inSHAMapInnerNode::setChild
: #4266 -
Release TaggedCache object memory outside the lock: 3726f8b
-
Rename SHAMapStoreImp::stopping() to healthWait(): 7e9e910
-
Improve wrapper around OpenSSL RAND: 7b3507b
-
Improve AccountID string conversion caching: Improved memory cache usage. e2eed96
-
Build the command map at compile time: 9aaa0df
-
Avoid unnecessary copying and dynamic memory allocations: d318ab6
-
Use constexpr to check memo validity: e67f905
-
Remove charUnHex: 83ac141
-
Remove deprecated AccountTxOld.cpp: ce64f7a
-
Remove const_cast usage: 23ce431
-
Remove inaccessible code paths and outdated data format wchar_t: 95fabd5
-
Improve move semantics in Expected: #4326
GitHub
The public source code repository for...
rippled (XRP Ledger server) Version 1.10.0-rc4
Version 1.10.0-rc4 (release candidate) of rippled
, the reference implementation of the XRP Ledger protocol is now available. The 1.10.0 release line introduces six new amendments:
fixTrustLinesToSelf
featureImmediateOfferKilled
featureDisallowIncoming
featureXRPFees
fixUniversalNumber
fixNonFungibleTokensV1_2
Information about these amendments can be found on Known Amendments.
rippled (XRP Ledger server) Version 1.9.4
Version 1.9.4 of rippled
, the reference implementation of the XRP Ledger protocol is now available. This release introduces an amendment that removes the ability for an NFT issuer to indicate that trust lines should be automatically created for royalty payments from secondary sales of NFTs, in response to a bug report that indicated how this functionality could be abused to mount a denial of service attack against the issuer.
Action Required
This release introduces a new amendment to the XRP Ledger protocol, fixRemoveNFTokenAutoTrustLine
to mitigate a potential denial-of-service attack against NFT issuers that minted NFTs and allowed secondary trading of those NFTs to create trust lines for any asset.
This amendment is open for voting according to the XRP Ledger's amendment process, which enables protocol changes following two weeks of >80% support from trusted validators.
If you operate an XRP Ledger server, then you should upgrade to version 1.9.4 within two weeks, to ensure service continuity. The exact time that protocol changes take effect depends on the voting decisions of the decentralized network.
For more information about NFTs on the XRP Ledger, see NFT Conceptual Overview.
Install / Upgrade
On supported platforms, see the instructions on installing or updating rippled
.
Changelog
Contributions
The primary change in this release is the following bug fix:
- Introduce fixRemoveNFTokenAutoTrustLine amendment: Introduces the
fixRemoveNFTokenAutoTrustLine
amendment, which disables thetfTrustLine
flag, which a malicious attacker could exploit to mount denial-of-service attacks against NFT issuers that specified the flag on their NFTs. (#4301)
GitHub
The public source code repository for rippled
is hosted on GitHub at https://github.com/XRPLF/rippled.
We welcome all contributions and invite everyone to join the community of XRP Ledger developers and help us build the Internet of Value.
Credits
The following people contributed directly to this release:
- Scott Schurr [email protected]
- Howard Hinnant [email protected]
- Scott Determan [email protected]
- Ikko Ashimine [email protected]