rippled 1.9.2: Bug Fixes & XLS-20 Amendment Voting
Published: 2022-07-26 03:03:00

Greetings 🖖

Version 1.9.2 of rippled (the reference implementation of
the XRPL protocol) was just released with several key changes, including fixes for bugs identified with the initial implementation of the **XLS-20** spec that introduces support for Non Fungible Tokens (NFTs).

The XRPL validator community can now confidently vote on
[**XLS-20**](https://github.com/XRPLF/XRPL-Standards/discussions/46)&mdash;Ripple's proposed standard to bring native NFTs to the [XRP Ledger (XRPL)](http://www.xrpl.org/).

## New in 1.9.2

The 1.9.2 release aims to correct or rectify issues that developers and server operators identified with earlier releases, such as:

- A [race condition](https://en.wikipedia.org/wiki/Race_condition#In_software)
    in the shard code that could result in a server crash. This issue would only affect servers configured with sharding enabled, which is currently experimental and not recommended for production.
-   A race condition while handling an operator-requested shutdown
    request could result in the server stalling and hanging instead of shutting down.
-   In rare cases, an exception would be thrown from a code path that did not install an exception handler, abruptly shutting down and potentially resulting in database corruption.
-   An incorrect SQL query during startup could result in an [*apparent failure to persist amendment votes across restarts*](https://github.com/XRPLF/rippled/issues/4220), even though the vote was properly persisted.
-   A failure to properly sanitize certain JSON inputs early could result in unexpected errors in code that made assumptions about the data contained in the JSON object.
-   Although extremely unlikely to manifest in practice, a bug in the low-level spinlock code could cause the same SHAMapInnerNode child list to lock under some circumstances repeatedly.
-   Improper error checking could allow for the creation of an offer to acquire an NFT that would see the user offering the NFT for sale to pay the user accepting the offer; this fix introduces a fix amendment, `fixNFTokenNegOffer`.
-   Improper range checking during parsing of HTTP and HTTPS URLs could fail to [*properly detect invalid port numbers*](https://github.com/XRPLF/rippled/issues/4200).
-   Failure to honor the `network_id` configuration parameter.

## XLS-20 Voting

The XRP Ledger uses an on-ledger voting mechanism to allow network
participants to vote on amendments to the protocol.

One such amendment is `NonFungibleTokensV1` which is being actively voted on. Unfortunately, the discovery of bugs in that amendment
has necessitated the introduction of two fix amendments: `fixNFTokenDirV1` and `fixNFTokenNegOffer`, complicating the path toward activation of the XLS-20 standard as the fixes need to activate **before** the `NonFungibleTokensV1` amendment.

While the maintainers of the software take no position on how operators should vote when it comes to the adoption of the **XLS-20** standard, the 1.9.2 release introduces a new amendment,  **`NonFungibleTokensV1_1`**, which combines and supersedes the existing **`NonFungibleTokensV1`**, **`fixNFTokenDirV1`** and **`fixNFTokenNegOffer`** amendments, simplifying voting and reducing the possibility of accidentally activating amendments out of order. The `NonFungibleTokensV1`, `fixNFTokenDirV1` and `fixNFTokenNegOffer` amendments continue to be available and open for voting but should be considered deprecated. 

## Building for the XLS-20 Community

As we previously shared, Ripple has conducted testing and configured its validators to vote in support of activation of **XLS-20**. Ripple's validators will begin
voting for **`NonFungibleTokensV1_1`** and against the `NonFungibleTokensV1`, `fixNFTokenDirV1` and `fixNFTokenNegOffer` once upgraded to the 1.9.2 release.

We are confident in the potential **XLS-20** can bring to several projects and businesses in the XRPL community. Some of the many projects dependent on native NFT support include:

-   [*xDude*](https://xdude.live/)
-   [*Pixel Ape Rowboat Club (PARC)*](https://www.pixelaperowboat.club/)
-   [*X-Tokenize*](https://x-tokenize.com/)
-   [*XPUNKS*](https://xpunks.club/)

If activated, **XLS-20** would bring native NFT support to the XRPL, providing developers and community projects access to NFT minting, trading and burning functionality. **XLS-20** also supports advanced features like automatic royalties.

XRP Ledger server operators are encouraged to upgrade to version 1.9.2 within two weeks to ensure service continuity. The exact time that protocol changes take effect depends on the voting decisions of the decentralized network.

<hr noshade>
<sup>As with all proposed amendments, Ripple recommends that XRPL validators do their due diligence before voting. Visit my [previous blog](https://dev.to/ripplexdev/ripple-validators-vote-in-favor-of-xls-20-amendment-1ocd) to learn more about the XRP Ledger's amendment process.</sup>