Blog Article

Guide to Protocol 15 Prep

Author

Justin Rice

Publishing date

Protocol upgrade

Sponsored reserves

Claimable balances

A few weeks ago, we published this guide and started planning for the Stellar Protocol 14 rollout. Since then, there's been a change of plans... 

It turns out we're skipping the public network upgrade to Protocol 14. Instead, we're going straight to Protocol 15, and rescheduling the vote to upgrade the public network to 11/23/2020.

The reason: after the Stellar testnet upgraded to Protocol 14 on 9/29/20, SDF continued testing, and discovered that two rare, specifically constructed transactions could have caused validators to crash on apply. Protocol 14 was not yet live on the public network, and no one submitted either transaction on the testnet, so no validators actually encountered the bug. As soon as we identified the problem, we got to work on a fix, completed it, and deployed it to the testnet.

Out of an abundance of caution, we opted to release the fix as Protocol 15 rather than as a patched version of Protocol 14. That way, we can ensure that all validators are running an up-to-date version of Stellar Core when the public network upgrades. Since all nodes will recognize these specific transactions as errors, there's no chance an invalid transaction will ever be applied to the ledger.

This discovery is exactly the kind of thing the testnet is designed to bring to light: long before we suggest a change to the public network, we thoroughly test it in a sandbox environment, and leave plenty of time to root out and correct potential problems so they never go live in a production environment.

While this change in plans delays the rollout of the new features we announced recently — they'll now be available on the public network after the Protocol 15 upgrade on 11/23/20 — it also illustrates that the testnet is an effective safeguard against introducing potential problems to the public network. Over the next few weeks, we appreciate your attention and cooperation in preparing for the Protocol 15 upgrade.

New Key Dates:

  • 10/20/2020: Testnet upgrade to Protocol 15
  • 11/23/2020: Public network vote to upgrade to Protocol 15

If you run Stellar Core

Install Stellar Core v15.0.0 as soon as you can. If your node is running a pre-15.0.0 version of Stellar Core when the network upgrades, it will throw an error and lose sync.

We're now planning to schedule a validator vote on 11/23/2020 to upgrade the network, and we will share the exact command you can use to arm your node closer to that date. To stay in the loop as we coordinate that vote, join the Keybase stellar.public #validators channel.

If you run Horizon:

Install Horizon v1.11.0, which has full support for Protocol 15 and fixes an issue in earlier versions of Horizon, as soon as possible. If you don't upgrade, Horizon will fail at state ingestion or verification the first time it encounters a new Protocol 15 operation.

If you want to start exploring the new objects and endpoints, check out the Protocol 15 Improvements post, which has links to all the relevant documentation.

If you use a Stellar SDK:

Install the most recent release as soon as possible. The Protocol 15 fix doesn't require changes at the SDK level, so if you already installed a version that supports Protocol 14, you should be good. Relevant releases are linked below, and we will update with links to new releases as soon as they come out:

If you have a custom Stellar integration:

If you're using Stellar, but you're not using a Stellar SDK, you will likely need to manually update your code. You may want to check out the JS SDK issue that lays out all the changes required to adapt to Protocol 15.

Also, please contact me and let me know everything you can about your custom integration. I'd love to find out more so we do a better job of informing, assisting, and accommodating people like you: [email protected].