Blog Article

Guide to Protocol 13 Prep

Author

Justin Rice

Publishing date

Protocol upgrade

SDK

Stellar Protocol 13 is on its way, and you can read all about the new features it introduces in this blog post. Like most protocol upgrades, it requires a fair amount of orchestration: Horizon, the Stellar SDKs, and all the varied and wonderful software built on Stellar need to be updated to accommodate changes in the underlying data structures used by Stellar Core. No matter who you are or what you do with Stellar, you're going to need to take some time to tend to your software.

We wanted to start talking about upgrading sooner rather than later to give you time to prepare, and to make the process as painless as possible, we're gathering relevant resources in this guide. New versions of Horizon and the Stellar SDKs will continue to land over the next few weeks, and as they do, we'll update links and information.

On 06/18/2020, the public network votes to upgrade‍

The testnet upgraded 05/07/2020. If you're building something on the testnet and running into trouble, you may need to update any SDKs you use as well as any custom software that accesses Horizon or Stellar Core directly.

The public network validators will vote on the Protocol 13 upgrade 06/18/2020 — which is two weeks later than the original plan so people have a bit more time to prepare. If your software isn't up to date and the network upgrades, your Stellar integration will likely break.

Here's what you need to do before those dates:

If you use a Stellar SDK:

Download the new version as soon as it's ready. SDKs are backwards compatible, so they will continue to support Protocol 12 for the rest of its short life. If, however, you're using an old version when the network upgrades to Protocol 13, it will likely get confused, throw errors, and cease to function as intended.

At the moment, not all the SDKs support Protocol 13. We'll announce new versions as they're released, and add them to the list below. You can also track their progress on this Github issue. SDKs that are ready to download:

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 13. It's the template the other SDKs are following, and it may serve you well, too.

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].

If you run Horizon:

Download Horizon 1.4.0 ASAP. If you're upgrading from Horizon 1.1.0 or 1.2.2, it should be pretty quick and easy. If you're upgrading from an earlier version, you'll need to make sure you allocate time for a required database migration. When we did it, it took almost nine hours. If you don’t upgrade, your Horizon won’t be able to ingest or submit Protocol 13 transactions, so it will only partially work when the network upgrades.

If you run Stellar Core:‍

Stellar Core v13.1.0 is the latest version of Stellar Core, and it supports Protocol 13. If you're not running that (or v13.0.0) when the network upgrades, your node will throw an "Invalid upgrade" and crash. Period. If you run a validator, you should also make sure to arm it to vote for the upgrade on 06/18/2020. To stay in the loop as we coordinate that vote, join the Keybase stellar.public #validators channel.

If you run a validator, you can arm it to upgrade using the following command:

/upgrades?mode=set&upgradetime=2020-06-18T16:00:00Z&protocolversion=13